私はString.replaceFirstエラー? Javaの
String s = "2r2";
System.out.println(s.replaceFirst("2r2","4"));
を行うとそれは4を印刷し、動作しますが、私は
String s = "2^2";
System.out.println(s.replaceFirst("2^2","4"));
を行う場合には動作しません(それは^ 2 2を出力)、なぜですか?私は何をしますか?
私はString.replaceFirstエラー? Javaの
String s = "2r2";
System.out.println(s.replaceFirst("2r2","4"));
を行うとそれは4を印刷し、動作しますが、私は
String s = "2^2";
System.out.println(s.replaceFirst("2^2","4"));
を行う場合には動作しません(それは^ 2 2を出力)、なぜですか?私は何をしますか?
replaceFirst
は、正規表現の構文を使用しています。^
は特別な意味を持ちます(使用される修飾語によっては文字列または行の先頭を表します)。
"2\\^2"
のように^
をエスケープするか、より簡単に使用するためにPattern.quote("2^2")
を使用する必要があります。 ^
文字は特別な意味を持っている正規表現で
String s = "2^2";
System.out.println(s.replaceFirst(Pattern.quote("2^2"),"4"));
、:
だからあなたのコードでは、より多くのようにする必要があります。これは行の先頭に一致します。
代わりにs.replaceFirst("2\\^2","4")
を使用してください。バックスラッシュは、特別な意味を与えるのではなく、^
を通常の文字として扱うことを意味します。