+
文字を文字列にある文字に置き換えようとしhyphen
ています。
String str = "word+word";
str.replaceAll('+ ', '-');
置換を使用してみましたが、exception
これを行う他の方法はありますか。
+
文字を文字列にある文字に置き換えようとしhyphen
ています。
String str = "word+word";
str.replaceAll('+ ', '-');
置換を使用してみましたが、exception
これを行う他の方法はありますか。
使用する
str = str.replaceAll("\\+", "-");
コード内のいくつかのエラー:
+
最初の引数が正規表現であるため、 char をエスケープする必要があります (\
それ自体は Java 文字列リテラルでエスケープする必要があります)。使用するだけreplace
です:
str = str.replace('+', '-');
これは正規表現では機能しませんが、文字をそのまま使用します。
また、ご覧のとおり、Java では不変であるため、変数
に再度値を再設定する必要があります。この場合、メソッドは現在の( )を変更しませんが、'-'に置き換えて新しいものを作成します。str
String
replace
String
str
+
このreplaceAll
関数は、最初の引数として正規表現を取ります。+
正規表現言語の特殊文字であることが起こります。に置き換え+
てみてください\\+
。これによりプラス記号がエスケープされるため、コードは通常の文字のように処理されます。
また、replaceAll
メソッドは文字列を生成するため、機能しません。やってみてください:
String str = "word+word";
str = str.replaceAll("\\+ ", "-");
「replaceAll」は正規表現用で、文字列は不変です。使用する:
str = str.replace("+", "-");
代わりは...
使用する必要のあるエスケープシーケンスがわからない場合は、
あなたは単にこれを行うことができます。
str = str.replaceAll(Pattern.quote("+"), "-");
これにより、正規表現で事前定義されたトークンが自動的にエスケープされ、文字通りの方法で一致します
replaceAll では '' ではなく "" を使用します。
String java.lang.String.replaceAll(String regex, String replacement)