0

⋍またはのようなワイルドな文字を含む 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、置換の結果としてnewを返し、変更しませんres。試す

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