言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Java辞典

  1. トップページ
  2. Java辞典
  3. 文字列.indexOf() / lastIndexOf() / contains()

文字列.indexOf() / lastIndexOf() / contains()

対応: indexOf() / lastIndexOf() Java 1.0(1996)
contains() Java 5(2004)

文字列の中から特定の文字列を検索したり、含まれているかどうかを確認したりするメソッドです。検索結果はインデックス(位置)で返され、見つからない場合は -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 を返します。

サンプルコード

sample_StringIndexofContains.java
class StringIndexofContains {
    public static void main(String[] args) {
        // indexOf() で最初の出現位置を取得します。
        String name = "桐生一馬";
        System.out.println(name.indexOf("一")); // 『2』と出力されます。

        // 見つからない場合は -1 が返されます。
        System.out.println(name.indexOf("悟")); // 『-1』と出力されます。

        // 開始位置を指定して検索します。
        String repeated = "真島真島";
        System.out.println(repeated.indexOf("真", 1)); // 『2』と出力されます。

        // lastIndexOf() で最後の出現位置を取得します。
        System.out.println(repeated.lastIndexOf("島")); // 『3』と出力されます。

        // contains() で文字列が含まれるか確認します。
        String sentence = "待ってたでぇ~……桐生ちゃーん!!";
        System.out.println(sentence.contains("桐生")); // 『true』と出力されます。
        System.out.println(sentence.contains("秋山")); // 『false』と出力されます。

        // indexOf() を使って文字列が存在するか確認することもできます。
        if (sentence.indexOf("桐生ちゃーん") != -1) {
            System.out.println("『桐生ちゃーん』が見つかりました。");
        }
    }
}
javac StringIndexofContains.java
java StringIndexofContains
2
-1
2
3
true
false
『桐生ちゃーん』が見つかりました。

概要

『indexOf()』は文字列内で指定した部分文字列が最初に現れる位置をインデックスで返します。インデックスは0始まりで、見つからない場合は -1 を返します。第2引数に開始位置を指定することで、途中から検索を始めることも可能です。

『contains()』は内部的に『indexOf()』を呼び出しており、位置ではなく真偽値で結果を得たい場合に便利です。大文字・小文字は区別されるため、区別せずに検索したい場合はあらかじめ『toLowerCase()』などで揃えてから比較してください。

文字列の先頭・末尾一致を確認するには『startsWith() / endsWith()』、文字列の切り出しには『substring()』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。