String foo = "a3#4#b";
String afterPunctutationRemoval = foo.replaceAll("[,.;:?!'-_\"/()\\{}]", "");
System.out.println(afterPunctutationRemoval);
結果として「a##b」が表示されますが、その理由を誰かに説明してもらえますか?
文字列をそのまま返してはいけませんか?
String foo = "a3#4#b";
String afterPunctutationRemoval = foo.replaceAll("[,.;:?!'-_\"/()\\{}]", "");
System.out.println(afterPunctutationRemoval);
結果として「a##b」が表示されますが、その理由を誰かに説明してもらえますか?
文字列をそのまま返してはいけませんか?
文字クラスには、数字にも一致する範囲'..が含まれています。_
-を文字クラスの最初または最後に置きます。
foo.replaceAll("[,.;:?!'_\"/()\\{}-]", "")
またはそれを脱出する:
foo.replaceAll("[,.;:?!'\\-_\"/()\\{}]", "");
'-_'との間のすべての文字に一致し_ます。
他の二人が言ったように、-キャラクターを脱出してください- \\-。
また、\\{と同じように評価し{ます、これは意図されていましたか?そうでない場合は、円記号をエスケープしてみてください-\\\\{