Tom*_*eck 36 java arrays string
我只是想知道从列表的所有元素中删除空格的最佳方法是什么.
例如,如果我有,我 String [] array = {" String", "Tom Selleck "," Fish "}
怎么能得到所有的元素{"String","Tom Selleck","Fish"}
谢谢!
Ósc*_*pez 57
试试这个:
String[] trimmedArray = new String[array.length];
for (int i = 0; i < array.length; i++)
trimmedArray[i] = array[i].trim();
Run Code Online (Sandbox Code Playgroud)
现在trimmedArray包含相同的字符串array,但没有前导和尾随空格.或者,您可以编写此代码以在同一数组中就地修改字符串:
for (int i = 0; i < array.length; i++)
array[i] = array[i].trim();
Run Code Online (Sandbox Code Playgroud)
use*_*998 21
另一个java 8 lambda选项:
String[] array2 = Arrays.stream(array).map(String::trim).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)
而没有新阵列创建的丑陋但优化的版本
Arrays.stream(array).map(String::trim).toArray(unused -> array);
Run Code Online (Sandbox Code Playgroud)
原始的"数组"被修改.
blu*_*ter 15
在应用程序构建路径中添加commons-lang3-3.1.jar.使用下面的代码片段修剪String数组.
String array = {" String", "Tom Selleck "," Fish "};
array = StringUtils.stripAll(array);
Run Code Online (Sandbox Code Playgroud)
小智 9
在Java 8中,Arrays.parallelSetAll似乎已经为此目的做好了准备:
import java.util.Arrays;
Arrays.parallelSetAll(array, (i) -> array[i].trim());
Run Code Online (Sandbox Code Playgroud)
这将修改原始数组,用lambda表达式的结果替换每个元素.
我知道这是一个非常古老的帖子,但是从Java 1.8开始,有一种更好的方法来修剪数组中的每个String.
Java 8 Lamda Expression解决方案:
List<String> temp = new ArrayList<>(Arrays.asList(yourArray));
temp.forEach(e -> {temp.set((temp.indexOf(e), e.trim()});
yourArray = temp.toArray(new String[temp.size()]);
Run Code Online (Sandbox Code Playgroud)
使用此解决方案,您无需创建新阵列.
就像ÓscarLópez的解决方案一样