【Java】replaceで置換されない原因を調べる

【Java】replaceで置換されない原因を調べる

管理人
この記事では、Javaのreplaceで置換されない原因について解説します。

Javaのreplaceメソッドで置換されない場合は、以下の点を確認すれば解消できると思います。

正規表現で置換しようとしている場合

 正規表現で置換しようとする場合、replaceメソッドでは置換されないためreplaceAllを使用する必要があります。

replace 文字列を検索して条件に一致する部分をすべて置換する
replaceAll 文字列を検索して条件に一致する部分をすべて置換する※正規表現使用可能
String str = "12345";

System.out.println(str.replace("[0-9]","Z"));
System.out.println(str.replaceAll("[0-9]","Z"));

実行結果
12345
ZZZZZ

 replaceメソッド正規表現を使用できないため、該当文字が無く置換されていません。

 

値を受け取っていない場合

上の実行結果では置換されていましたが、以下の場合は値が変わっていません。

String str = "12345";
str.replaceAll("[0-9]","Z");
System.out.println(str);

実行結果
12345

 String型は不変のオブジェクトのため、値は変更できないため変更を反映させるためにはstr=str.replace(“t”, “T”);とし、値を受け取る必要があります。

String str = "12345";
str = str.replaceAll("[0-9]","Z");
System.out.println(str);

実行結果
ZZZZZ

管理人
Javaの記事の一覧はJava にまとめてあります

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP