0

⋍当我得到一个包含一些诸如or之类的通配符的 HTML 文件𖫻时,我想用项目符号替换它们。所以我写了这个方法:

public String replaceAmps(String initial)
{
    // This list will contain all the &amps; to replace.
    ArrayList<String> amps = new ArrayList<String>();
    String res = initial;
    int index = initial.indexOf("&amp;");
    // Get all the indexes of &amp.
    while (index >= 0) 
    {
        StringBuilder stb = new StringBuilder("&amp;");
        // Create a String until the next ";", for example &amp;#1091;<- this one
        for(int i = index+5 ; initial.charAt(i) != ';' ; i++) stb.append(initial.charAt(i));
        stb.append(";");
        // Add the amp if needed in the list.
        if(!amps.contains(stb.toString())) amps.add(stb.toString());
        index = initial.indexOf("&amp;", index + 1);
    }
    // Replace the Strings from the list with a bullet.
    for(String s : amps) res.replace(s, "•");
    return res;
}

我正确地获得了列表中的所有放大器,但更换不起作用。为什么?谢谢你的帮助。

4

1 回答 1

8

字符串是不可变的;该replace方法返回一个新String的作为替换的结果并且不修改res. 尝试

for(String s : amps) res = res.replace(s, "•");
于 2013-03-19T23:39:06.383 回答