1

String text System.out.println(text);こんな風貌もあります

So the traveller sat down by the side of that old man,
face to face with the serene sunset; 
and all his friends came softly back and stood around him. 

String subText

System.out.println(subText);上記の文字列の一部であり、次のようになります

So the traveller sat down by the side of that old man,
face to face with the serene sunset;

subTextこの部分を取り除く必要がありますtext = text.replaceAll(subtext, "");が、これはテキストには影響しませんか?

4

2 に答える 2

6

この特定のケースでは問題ではありませんが、replace代わりにreplaceAll次のものを使用する必要があります。

text = text.replace(subtext, "");

このreplaceAllメソッドは正規表現を使用し、一部の文字には特別な意味があります。

この特定のケースでは、 に微妙に異なる何かが存在する必要があるため、違いは subtext見られませんtext。余分な空白があるか、改行文字のエンコードが異なっている可能性があります。によって生成された出力を見ると、空白の違いを確認するのは非常に困難System.out.printlnです。

于 2013-10-12T19:45:57.610 に答える
2

機能しない理由は、「replaceAll()」が検索語が正規表現であることを想定しているためです。

replace()代わりに、プレーンテキストの検索を使用し、偶然にもすべての出現を置換する を使用する必要があります。

text = text.replace(subtext, "");

で動作しなかった理由についてはreplaceAll()、誰にもわかりません。診断するには、次のように実際にテキストに含まれているかどうかを確認できます。

System.out.println(text.contains(subtext));
于 2013-10-12T20:04:03.897 に答える