文字列の照合

文字列の照合(しょうごう、英: string matching)とは、ある文字列(パターン)が、別の文字列(テキスト)中に出現するかどうかを調べる処理のことを指します。

例えば、"apple" というパターンが、"I like apples and oranges." というテキスト中に出現するかどうかを調べる場合、パターンの各文字をテキストの各文字と比較していき、一致しない箇所があった場合は次の位置から比較を続けます。パターンが見つかった場合は、その開始位置を報告するか、パターンが見つからなかった場合は、見つからなかったことを報告します。以下のサンプルプログラムでは見つからなかった場合は-1を返す仕様になっています。

文字列の照合は、コンピュータサイエンスにおいて基本的かつ重要な問題であり、情報検索、自然言語処理、バイオインフォマティクスなどの分野で広く応用されています。検索エンジン、テキストエディタ、バイオインフォマティクスのソフトウェアなど、多くのアプリケーションで利用されています。

Javaの文字列照合には、Stringクラスに用意されている indexOf() メソッドがあります。このメソッドは、指定された文字列が現れる最初のインデックスを返します。もし文字列が見つからなかった場合は、-1を返します。

String text = "I love programming in Java!";
String pattern = "love";
System.out.println(text.indexOf(pattern));

以下はindexOf() メソッドを模した動作をするプログラムです。

<サンプルプログラム>

<出力結果>

パターンabc が 5 番目の添字以降に見つかりました。