Javaで文字列の位置を取得する方法

Javaを使用してプログラムを開発していると、文字列内に特定の文字や文字列がどこに位置しているのか知りたくなることがよくあります。たとえば、特定のキーワードが文中に含まれているかどうかを確認する場面など、多岐にわたるシーンでこの手法が活用されます。

この記事では、Javaの String クラスの indexOf メソッドと lastIndexOf メソッドを使用して、文字列内の別の文字列の位置を簡単に取得する方法を詳細に紹介します。

indexOf メソッドで最初の出現位置を検索

indexOf メソッドは、文字列内で指定された文字列が最初に出現する位置を返します。文字列が見つからない場合、このメソッドは -1 を返します。これは、特定のキーワードの出現を検出する際に非常に役立ちます。

String str = "Hello, World!";
int position = str.indexOf("World");
System.out.println(position);  // 7 が出力される

さらに、indexOf メソッドは、2つ目の引数として開始位置を指定することができます。これにより、文字列の特定の位置から検索を開始できます。

String str = "Hello, World! World!";
int position = str.indexOf("World", 8);
System.out.println(position);  // 14 が出力される

lastIndexOf メソッドで最後の出現位置を検索

一方、lastIndexOf メソッドは、文字列内で指定された文字列が最後に出現する位置を返します。このメソッドも、文字列が見つからない場合には -1 を返します。

String str = "Hello, World! World!";
int position = str.lastIndexOf("World");
System.out.println(position);  // 14 が出力される

そして、lastIndexOf メソッドにも2つ目の引数として開始位置を指定することができます。ただし、この場合の開始位置は検索の開始点として機能し、その位置より前の文字列内で指定された文字列を検索します。

String str = "Hello, World! World!";
int position = str.lastIndexOf("World", 13);
System.out.println(position);  // 7 が出力される

まとめ

Javaの String クラスの indexOf および lastIndexOf メソッドは、文字列内の特定の文字列の位置を取得するための強力なツールです。これらのメソッドを活用することで、文字列の操作や解析を効率的に行うことができます。