特定のデータに対して文字列で検索を行う方法について解説しています。
使用するメソッドがcontainsメソッド、startsWithメソッド、
endsWithメソッド、indexOfメソッド、lastIndexOfメソッド
上記5種類のメソッドの使用方法などまとめています。
文字列を検索するメソッドの解説
各メソッドごとの使い方をまとめています。
メソッド | 説明 |
---|---|
public boolean contains(String s) | 対象にsが含まれているか |
public boolean startsWith(String s) | 文字列sで始まっているか |
public boolean endsWith(String s) | 文字列sで終わっているか |
public int indexOf(String s) | 文字列sが前から何番目の位置に存在するか |
public int lastIndexOf(String s) | 文字列sが後ろから何番目の位置に存在するか |
サンプルコード
containsメソッド
containsメソッドの記載方法は
文字列.contains(調べたい文字列)
調べたい文字列が含まれていた場合、true
含まれていなかった場合、falseが返します。
public class Main {
public static void main (String[] args) {
String str = "あいうえおかきくけこ";
if (str.contains("おかき")) {
System.out.println("含まれています");
} else {
System.out.println("含まれてません");
}
}
}
実行結果
含まれています
startsWith,endWithメソッド
文字列.startsWith(調べたい文字列)
文字列.endsWith(調べたい文字列)
startsWithメソッドは文字列が特定の文字列から始まっているか調べ、
始まっていたらtrue、そうでなければfalseが返却されます。
endsWithメソッドは文字列が特定の文字列で終了しているか調べ。、
特定文字で終了している場合true、そうでなければfalseを返します。
public class Main {
public static void main (String[] args) {
String str = "あいうえおかきくけこ";
if (str.startsWith("あいう")) {
System.out.println("strの開始文字は「あいう」です");
} else {
System.out.println("strは「あいう」で始まりません。");
}
if (str.endsWith("けこ")) {
System.out.println("strの終了文字は「けこ」です");
} else {
System.out.println("strは「けこ」で終わりません。");
}
}
}
実行結果
strの開始文字は「あいう」です
strの終了文字は「けこ」です
indexOf,lastIndexOfメソッド
書き方は以下の通りです。
文字列.indexOf(検索したい文字列)
文字列.lastIndexOf(検索したい文字列)
indexOfは検索文字列があった場合、初めの文字列の
先頭位置の0から始まる数値を返却します。
lastIndexOfは反対に後方から検索文字列を検索し
初めにみつけた文字列のインデックス番号を返却します。
文字列が見つからなかった場合、-1が返却されます。
public class Main {
public static void main (String[] args) {
String str = "あいうあいうあいう";
if (str.indexOf("あいう") != -1) {
System.out.println("含まれています。インデックス番号は" + str.indexOf("あいう"));
} else {
System.out.println("含まれてません");
}
if (str.lastIndexOf("あいう") != -1) {
System.out.println("含まれています。インデックス番号は" + str.indexOf("あいう"));
} else {
System.out.println("含まれてません");
}
}
}
実行結果
含まれています。インデックス番号は0
含まれています。インデックス番号は6
検索文字列の先頭のインデックス番号が返されています。