1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Javaでreplace()メソッドを使う時にエラー: replaceに適切なメソッドが見つかりませんの対処法

Last updated at Posted at 2022-02-23

Javaでコードを書いている時に、replace()メソッドを使う時に、タイトルのエラーで詰まってしまったので、備忘録としてまとめます。
以下のようにしてコードを書いていたのですが、

main.java
class Main {
    public static void main(String args[]){
        String str = "あいうえお";
        str.charAt(0);
        String targetWord = String.valueOf(str.charAt(0));
        System.out.println(str.replace(str.charAt(0), "か"));
      }      
}

これで実行しようとしたらタイトルのエラーになってしまいました。

やろうとしたこと

やろうとしたこととしては、

・charAt()メソッドで取得した文字を、replaceメソッドで置換する

というものです。
それをする時に、replaceの引数に直接charAt()メソッドで指定した文字列を

System.out.println(str.replace(str.charAt(0), "か"));

このようにして変数strに対して、頭文字をに置換したかったので、第一引数に対象の文字列の頭文字を取得する処理を直接入れようとしました。
ただ、それをしてしまうと

main.java:6: エラー: replaceに適切なメソッドが見つかりません(char,String)

となってしまいます。

原因としては、charAt()メソッドで指定して取得するとそのデータ型はString型ではなくchar型になります。
しかし、replace()メソッドの引数に入れられるものはString型だけです。なのでchar型を入れるとエラーになってしまうわけです。
ではどうしたらいいのかというと、char型をStringに変換してしまえば解決します。

変換するには、StringオブジェクトのvalueOf()メソッドで指定します。

String targetWord = String.valueOf(str.charAt(0));

このように、valueOfメソッドでChar型からStringに変更します。
こうすることで、replace()メソッドに入れてもエラーにならないようになりました。
後は単純にreplaceメソッドの中に入れてあげれば大丈夫です。

String targetWord = String.valueOf(str.charAt(0));
System.out.println(str.replace(targetWord, "か"));

修正後のコード

Main.java
class Main {
    public static void main(String args[]){
        String str = "あいうえお";
        String targetWord = String.valueOf(str.charAt(0));
        System.out.println(str.replace(targetWord, "か"));
      }      
}

以上になります。
なにかの参考になったら嬉しいです。

追記

Main.java
public static void main(String[] args) {
    String str = "あいうえお";
    System.out.println(str.replace(str.charAt(0), 'か'));
}

System.out.println(str.replace(str.charAt(0), 'か'));の部分で、第荷引数をシングルコーテーションで囲うとchar型として指定することができます。
そうすれば、第一引数と第二引数で同じchar型に指定できます。

初めて知りました。

コメントでアドバイスをもらいました。
ありがとうございます!!!

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?