ArrayList replaceAll()不起作用

时间:2012-11-06 18:02:42

标签: java arraylist replaceall

我不知道我的代码中存在什么问题。无论我尝试更换什么,而不是畏缩。 我有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());
    }
}

3 个答案:

答案 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”