Java で文字列に文字が含まれているかどうかを調べる方法

Payel Ganguly 2023年10月12日
  1. 文字列に文字が含まれているかどうかを調べるには、文字列 contains() メソッドを用いる
  2. 文字列が文字を含むかどうかを調べるには、文字列 indexOf() メソッドを使用する
  3. 文字列 contains()if-else 文の併用
  4. string に含まれる特定の文字を検索する Java プログラム
Java で文字列に文字が含まれているかどうかを調べる方法

このチュートリアル記事では、Java で文字列に特定の文字が含まれているかどうかを調べる方法を紹介します。Java では、文字列に文字が含まれているかどうかを調べるために、さまざまな方法で contains() メソッドを使用します。このメソッドの実装について、さまざまな例を挙げて説明します。

文字列に文字が含まれているかどうかを調べるには、文字列 contains() メソッドを用いる

Java 文字列の contains() メソッドは、文字列内に特定の文字列が存在するかどうかを調べる。このメソッドは、指定した文字列が文字列内に存在する場合は true を返し、そうでない場合は false を返します。以下の例を見てみましょう。

import java.io.*;
import java.lang.*;
import java.util.*;

public class Example1 {
  public static void main(String[] args) {
    String str = "Character";
    System.out.println(str.contains("h"));
    System.out.println(str.contains("Char"));
    System.out.println(str.contains("ac"));
    System.out.println(str.contains("v"));
    System.out.println(str.contains("vl"));
  }
}

出力:

true
true
true
false
false

contains() メソッドは大文字と小文字を区別することに注意してほしい。与えられた文字列の中から CHA を探してみると、結果は以下のように false になります。

import java.io.*;
import java.lang.*;
import java.util.*;

public class Example {
  public static void main(String[] args) {
    String str = "Character";
    System.out.println(str.contains("H"));
    System.out.println(str.contains("CHAR"));
    System.out.println(str.contains("aCt"));
  }
}

出力:

false
false
false  

文字列が文字を含むかどうかを調べるには、文字列 indexOf() メソッドを使用する

この例では、indexOf() メソッドを用いて文字列内の文字を見つける方法を学びます。indexOf() メソッドは、contains() メソッドとは異なり、ブール値を返さない点が異なります。代わりに indexOf()int 値を返し、これは実際には string の中の substring のインデックスです。以下の例を理解しよう。

import java.io.*;
import java.lang.*;
import java.util.*;

public class Example2 {
  public static void main(String[] args) {
    String str = "Hello World!";
    if (str.indexOf("World") != -1) {
      System.out.println("The String " + str + " contains World");
    } else {
      System.out.println("The String " + str + "does not contain World");
    }
  }
}

出力:

The String Hello World! contains World

文字列 contains()if-else 文の併用

文字の存在により、Java の文字列 contains() メソッドがブール値を返すことがわかった。このために、このメソッドを if-else 条件文の中で使うことができます。以下の例で説明します。

import java.io.*;
import java.lang.*;
import java.util.*;

public class Example3 {
  public static void main(String[] args) {
    String str = "Hello World!";
    if (str.contains("World")) {
      System.out.println("It is true");
    } else {
      System.out.println("It is false");
    }
  }
}

出力:

It is true

string に含まれる特定の文字を検索する Java プログラム

この最後の例では、文字列内に特定の文字が存在するかどうかを検索する汎用的な Java プログラムを作成します。その場合は、文字列の長さに応じてループを実行して、その文字セットにマッチする文字を探します。以下の例を確認してみましょう。

import java.io.*;
import java.lang.*;
import java.util.*;

public class Example4 {
  public static void main(String[] args) {
    String str = "yellow";
    char[] charSearch = {'y', 'e', 'w'};
    for (int i = 0; i < str.length(); i++) {
      char chr = str.charAt(i);
      for (int j = 0; j < charSearch.length; j++) {
        if (charSearch[j] == chr) {
          System.out.println("Char Value " + charSearch[j] + " is present in " + str);
        }
      }
    }
  }
}

出力:

Char Value y is present in yellow
Char Value e is present in yellow
Char Value w is present in yellow

関連記事 - Java String