Java で文字列に文字が含まれているかどうかを調べる方法
-
文字列に文字が含まれているかどうかを調べるには、文字列
contains()
メソッドを用いる -
文字列が文字を含むかどうかを調べるには、文字列
indexOf()
メソッドを使用する -
文字列
contains()
とif-else
文の併用 -
string
に含まれる特定の文字を検索する 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