1

我不知道我的代码有什么问题。无论我尝试替换什么,都不会出错。我有一个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());
    }
}
4

3 回答 3

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确实有效。

于 2012-11-06T18:07:43.790 回答
2
List<String> list = Arrays.asList(new String[] {"a","ba",new String("a")});      
Collections.replaceAll(list, "a", "!!!!!");
System.out.println(list);

输出将是

!!!!! ba !!!!!

它不会替换“ba”中的“a”

于 2012-11-06T18:10:43.893 回答
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]

    }
}
于 2012-11-06T18:07:44.190 回答