Java プログラミング

【Java】特定の文字列を含んでいるかどうか!(contains,indexOf)

おしえてあげるもん!
特定の文字が入っているかどうかってどうやって調べるの?

コツコツ太郎
おしえてあげるもん

方法はいくつかあるもん!
containsだったり、indexOfだったりあるもん!

containsでやってみよう

  public boolean contains(CharSequence s)

containsはbooleanなので、特定の文字が含まれている場合にtrue、含まれていない場合にfalseを返却します。
例えば、文字列に「コツコツ」が含まれているかどうか調べたいときは以下のように書きます。

  String str = "こんにちは、僕はコツコツ太郎です。";
  if (str.contains("コツコツ")) {
    System.out.println("含まれています。"); //含まれているため、こちらが実行されます
  } else {
    System.out.println("含まれていません。");
  }

indexOfでやってみよう

  public int indexOf(String str)

indexOfは、検索したい文字が最初に出てくるインデックス(int)を返却します。
例えば「こんにちは、僕はコツコツ太郎です。」のどこに「コツコツ」が含まれているかどうか確認したい場合。
以下を実行するとインデックスの8番目に「コツコツ」があるため「8」を返却します。

  String str = "こんにちは、僕はコツコツ太郎です。";
  System.out.println(str.indexOf("コツコツ")); // 「8」と表示される。

indexOfは対象の文字列が含まれていない場合は「-1」

indexOfは対象の文字列が含まれていない場合は「-1」を返却します。

  String str = "こんにちは、僕はコツコツ太郎です。";
  System.out.println(str.indexOf(“花子”)); //「-1」と表示される。

もし、対象の文字列が含まれてるかどうか確認したい場合は、indexOfの返却値が「 -1」 より大きいかどうか調べれば良いのです。

  String str = "こんにちは、僕はコツコツ太郎です。";
  if (str.indexOf("コツコツ") > -1) { //-1より大きいかどうか
    System.out.println("含まれています。"); // こっちが実行される
  } else {
    System.out.println("含まれていません。");
  }

後ろから検索する「lastIndexOf」

indexOfは前から文字を検索しますが、後ろから検索する「lastIndexOf」があります。

  public int lastIndexOf(String str)

使い方はindexOfと同じです。
文字列の後ろ、「。」→「る」→「よ」→・・・と検索していきます。

  String str = "コツコツ太郎は、コツコツ頑張るよ。";
  System.out.println(str.indexOf("コツ")); //「0」が表示される
  System.out.println(str.lastIndexOf("コツ")); //「10」が表示される

-Java, プログラミング

© 2025 みんもん -みんなの問題- Powered by AFFINGER5