2016-04-14 45 views

回答

2

沒有更簡單的方法對列表中的每個元素執行某些操作,而不是通過列表中的所有元素並對每個元素執行某些操作。

使用ListIterator遍歷列表,並更新值:

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

需要注意的是,以取代所有空白(不僅僅是" "),你需要使用正則表達式,如這裏演示。

0

沒有這樣更好的選擇。與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