为ArrayList中的每个String元素摆脱空白

问题描述:

我想摆脱我的数组列表中每个元素的所有空白。为ArrayList中的每个String元素摆脱空白

我可以通过每个元素循环,获取文本并使用.replace(" ","")

但有更简单的方法或途径呢?

没有更简单的方法对列表中的每个元素执行某些操作,而不是通过列表中的所有元素并对每个元素执行某些操作。

使用ListIterator遍历列表,并更新值:

ListIterator<String> itr = list.listIterator(); 
while (itr.hasNext()) { 
    itr.set(itr.next().replaceAll("\\s", "")); 
} 

需要注意的是,以取代所有空白(不仅仅是" "),你需要使用正则表达式,如这里演示。

没有这样更好的选择。与Java 8一种方法是到列表的map的元素,然后collect结果:

import static java.util.stream.Collectors.toList; 
List<String> al = Arrays.asList("This is a ", "sentence", "\t with some", "\nwhite \n space "); 
al.stream().map(s -> s.replaceAll("\\s", "")).forEach(System.out::println); 
List<String> cleaned = al.stream().map(s -> s.replaceAll("\\s", "")).collect(toList()); 

注意的是,在replaceAll功能\\s每一个匹配的空白(制表符和换行符太) - 不仅空间而不是第一个。简单的replace函数只取代第一个模式的出现。

的例子的结果将是以下:

Thisisa 
sentence 
withsome 
whitespace