【Java】indexOfメソッドを使って文字列(String)に特定の文字列が含まれるか調べる!
indexOfメソッドを使用することで、文字列に特定の文字列が含まれるか調べることができます。
indexOfメソッドは、あるキーワードで検索する場合にそのキーワードを含めてリストにして表示したい場合に使われることがあります。
また、配列の中から指定した要素があるかどうかを検索する時にも使われることがあります。
今回はindexOfメソッドを使って以下の場合に文字列に特定の文字列が含まれるか調べていきます。
・ 特定の文字列が含まれているか確認する場合
・ 特定の小文字が含まれているか確認する場合
・ 特定の大文字が含まれているか確認する場合
また、lastIndexOfメソッドを使って文字列内に特定の文字列が含まれるかを末尾から調べる方法についても紹介します。
目次
indexOfメソッドとは
indexOfメソッドは、文字列内にパラメータで指定した文字列が含まれているかを調べることができるメソッドになります。
indexOfメソッドの書き方
indexOfメソッドの構文は下記となります。
1 |
文字列.indexOf(検索文字); |
indexOfの()に検索文字を指定することで文字列の中から検索文字が最初に出てくる位置を戻します。
しかし、文字列の中から検索文字が存在しなかった場合は「-1」を戻します。
indexOfメソッドを使ったサンプルコード
indexOfで特定の文字列が含まれるかを調べるサンプルコードを紹介します。
特定の文字列が含まれているか確認する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 文字列内に特定の文字列が含まれるか調べる public class Main { public static void main(String[] args) throws Exception { //インスタンスを作成 String str1In = "文字列内に特定の文字列が含まれるか調べるには、 "; // 文字列がstrInの中に含まれているかを調べる System.out.println( str1In.indexOf("文字列") != -1 ? "「文字列」が含まれる": "「文字列」が含まれない"); System.out.println(str1In.indexOf("文字列")); } } |
出力結果
「文字列」が含まれる
0
「文字列」という言葉が含まれているので「文字列」が含まれると出力されます。
そして「文字列は」1番目にありますので「0」を戻します。
特定の小文字が含まれているか確認する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 文字列内に特定の文字列が含まれるか調べる public class Main { public static void main(String[] args) throws Exception { //インスタンスを作成 String str2In = "SampleStringTest"; // "t"がstr2Inの中に含まれているかを調べる System.out.println( str2In.indexOf("t") != -1 ? "「t」が含まれる": "「t」が含まれない"); System.out.println(str2In.indexOf("t")); } } |
出力結果
「t」が含まれる
7
「t」という小文字が含まれているので「t」が含まれると出力されます。
そしてtは8番前にありますので「7」を戻します。
特定の大文字が含まれているか確認する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 文字列内に特定の文字列が含まれるか調べる public class Main { public static void main(String[] args) throws Exception { //インスタンスを作成 String strIn3 = "SampleStringTest"; // Aがstr2の中に含まれているかを調べる System.out.println( strIn3.indexOf("A") != -1 ? "「A」が含まれる": "「A」が含まれない"); System.out.println(strIn3.indexOf("A")); } } |
出力結果
「A」が含まれない
-1
「A」の小文字は含まれていますが、「A」の大文字は含まれていませんので「A」が含まれないと出力されます。
そして含まれない為、「-1」を戻します。
今回のポイント
特定の文字列が含まれるかを調べるにはindexOfを使用する
文字列内に特定の文字列が含まれるかを調べるにはindexOfメソッドを使用する
• indexOfメソッドで、文字列内にパラメータで指定した文字列が含まれているかを調べることができる
• 文字列が含まれているかを調べる場合、大文字小文字は区別される
• パラメータで指定した文字列が1文字目にある場合は「0」、2文字目にある場合は「1」を戻すように文字列内にパラメータで指定した文字列が最初に出現する位置を戻す
• 文字列内にパラメータで指定した文字列が存在しない場合は「-1」を戻す
補足
末尾から文字列内に特定の文字列が含まれるかを調べるには
lastindexOfメソッドを使用することで、文字列内に特定の文字列が含まれるかを末尾から調べることができます。
lastindexOfメソッドは、文字列内にパラメータがあるかどうかを末尾から調べて出現する位置を戻すメソッドとなり、戻す値はindexOfメソッドと同様に文字列の先頭から数えた位置になります。
パラメータで指定した文字列が存在しない場合は、indexOfメソッドと同様に「-1」を戻します。
末尾から文字列内に特定の文字列が含まれるかを調べるサンプルコードをを紹介します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// 文字列内に特定の文字列が含まれるか調べる public class Main { public static void main(String[] args) throws Exception { //インスタンスを作成 String strIn1 = "文字列内に特定の文字列が含まれるか調べるには、 "; String strIn2 = "SampleStringTest"; // 文字列がstrIn1の中に含まれているかを調べる System.out.println( strIn1.lastIndexOf("文字列") != -1 ? "「文字列」が含まれる": "「文字列」が含まれない"); System.out.println(strIn1.lastIndexOf("文字列")); // "t"がstrIn2の中に含まれているかを調べる System.out.println( strIn2.lastIndexOf("t") != -1 ? "「t」が含まれる": "「t」が含まれない"); System.out.println(strIn2.lastIndexOf("t")); // AがstrIn2の中に含まれているかを調べる System.out.println( strIn2.lastIndexOf("A") != -1 ? "「A」が含まれる": "「A」が含まれない"); System.out.println(strIn2.lastIndexOf("A")); } } |
出力結果
「文字列」が含まれる
8
「t」が含まれる
15
「A」が含まれない
-1
indexOfメソッドで紹介したサンプルコードの結果と同じですが、戻す値は文字列の末尾から検索した位置を返しています。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。