Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.indexOf() / lastIndexOf() / contains()
文字列の中から特定の文字列を検索したり、含まれているかどうかを確認したりするメソッドです。検索結果はインデックス(位置)で返され、見つからない場合は -1 が返されます。
構文
// 最初に一致した位置を返します(見つからない場合は -1)。 文字列.indexOf(String str); 文字列.indexOf(String str, int fromIndex); // 最後に一致した位置を返します(見つからない場合は -1)。 文字列.lastIndexOf(String str); 文字列.lastIndexOf(String str, int fromIndex); // 文字列が含まれているかどうかを返します。 文字列.contains(CharSequence s);
メソッド一覧
| メソッド | 概要 |
|---|---|
| indexOf(String str) | 指定した文字列が最初に現れるインデックスを返します。見つからない場合は -1 を返します。 |
| indexOf(String str, int fromIndex) | fromIndex の位置から前方に向かって検索します。 |
| lastIndexOf(String str) | 指定した文字列が最後に現れるインデックスを返します。見つからない場合は -1 を返します。 |
| lastIndexOf(String str, int fromIndex) | fromIndex の位置から後方に向かって検索します。 |
| contains(CharSequence s) | 指定した文字列が含まれている場合は true、そうでない場合は false を返します。 |
サンプルコード
// indexOf() で最初の出現位置を取得します。
String str = "banana";
System.out.println(str.indexOf("an")); // 『1』と出力されます。
// 見つからない場合は -1 が返されます。
System.out.println(str.indexOf("xyz")); // 『-1』と出力されます。
// 開始位置を指定して検索します。
System.out.println(str.indexOf("an", 2)); // 『3』と出力されます。
// lastIndexOf() で最後の出現位置を取得します。
String text = "abcabc";
System.out.println(text.lastIndexOf("b")); // 『4』と出力されます。
// contains() で文字列が含まれるか確認します。
String sentence = "Javaはオブジェクト指向言語です。";
System.out.println(sentence.contains("Java")); // 『true』と出力されます。
System.out.println(sentence.contains("Python")); // 『false』と出力されます。
// indexOf() を使って文字列が存在するか確認することもできます。
if (str.indexOf("nan") != -1) {
System.out.println("『nan』が見つかりました。");
}
概要
『indexOf()』は文字列内で指定した部分文字列が最初に現れる位置をインデックスで返します。インデックスは0始まりで、見つからない場合は -1 を返します。第2引数に開始位置を指定することで、途中から検索を始めることも可能です。
『contains()』は内部的に『indexOf()』を呼び出しており、位置ではなく真偽値で結果を得たい場合に便利です。大文字・小文字は区別されるため、区別せずに検索したい場合はあらかじめ『toLowerCase()』などで揃えてから比較してください。
文字列の先頭・末尾一致を確認するには『startsWith() / endsWith()』、文字列の切り出しには『substring()』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。