文字列の照合
文字列の照合(しょうごう、英: 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 番目の添字以降に見つかりました。 |