我不知道我的代码中存在什么问题。无论我尝试更换什么,而不是畏缩。
我有private static ArrayList<String> lista
。
我填写这个。然后在另一种方法中,无论我尝试什么,我都无法替换任何东西,比如:
public static void replacing() {
Collections.replaceAll(lista, "a", "!!!!!!!!!!!!!!!!!!!!!");
}
然后我在方法中打印这个并且lista是相同的,没有任何改变。我该怎么办?
public class MyProgram {
private static ArrayList < String > lista;
public static void fileReading() {
lista = new ArrayList < String > ();
try {
inp = new LineNumberReader(new BufferedReader(new InputStreamReader(new FileInputStream(inFileNev), "ISO8859-1")));
String sor;
while ((sor = inp.readLine()) != null) {
lista.add(sor);
lista.add(System.getProperty("line.separator"));
}
inp.close();
} catch...
}
public static void searching() {
Collections.replaceAll(lista, "a", "b");
System.out.println(lista.toString());
}
}
答案 0 :(得分:11)
List<String> list = Arrays.asList(new String[] {"a","b"});
System.out.println(list);
Collections.replaceAll(list, "a", "!!!!!");
System.out.println(list);
给出
[a, b]
[!!!!!, b]
上面的代码示例显示Collections.replaceAll
确实有效。
答案 1 :(得分:2)
这是一个解释Collections.replaceAll
的示例import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> sLst = new ArrayList<String>();
sLst.add("A");
sLst.add("B");
sLst.add("C");
sLst.add("A");
// This will replace all "A" with "Z"
Collections.replaceAll(sLst, "A", "Z");
System.out.println(sLst);// [Z, B, C, Z]
}
}
答案 2 :(得分:2)
List<String> list = Arrays.asList(new String[] {"a","ba",new String("a")});
Collections.replaceAll(list, "a", "!!!!!");
System.out.println(list);
输出
!!!!! ba !!!!!
它不会取代“ba”中的“a”