JavaでString型の変数に特定の文字が存在するかを検索する方法を説明したいと思います。
文字列が存在するか contains
特定の文字列が存在するかをチェックするにはcontainsを使います。
検索対象の文字列.contains("検索文字列")
存在すればtrue、存在しなければfalseが返ってきます。
String str = "A5ランクの横浜ビーフ";
System.out.println("横浜は、" + str.contains("横浜"));
System.out.println("神戸は、" + str.contains("神戸"));
実行結果
横浜は、true
神戸は、false
文字列がどこに存在するか indexOf
文字列が、検索対象の文字列の何文字目に存在するかを検索するにはindexOfを使います
検索対象の文字列.indexOf("検索文字列")
最初の文字を0番目とし、存在するのが何文字目かを返します、存在しない場合は-1を返します。
String str = "A5ランクの横浜ビーフ";
System.out.println("横浜は、" + str.indexOf("横浜"));
System.out.println("神戸は、" + str.indexOf("神戸"));
実行結果
横浜は、6
神戸は、-1
文字列が最後に存在するのはどこか lastIndexOf
検索対象の文字列に検索したい文字列が複数登場する場合に、
最後に登場する場所を調べるにはlastIndexOfを使います。
検索対象の文字列.lastIndexOf("検索文字列")
最初の文字を0番目とし、存在するのが何文字目かを返します、存在しない場合は-1を返します。
String str = "黒毛和牛、A5ランクの田村牛です";
System.out.println("牛の最後は、" + str.lastIndexOf("牛"));
System.out.println("豚の最後は、" + str.lastIndexOf("豚"));
実行結果
牛の最後は、13
豚の最後は、-1
ファイル名から拡張子を除いてファイル名を切り取りたいときなどによく使われます。
String str = "黒毛和牛.A5.山形牛.jpg";
System.out.println("ファイル名は、" + str.substring(0, str.lastIndexOf(".")));
実行結果
ファイル名は、黒毛和牛.A5.山形牛
Javaでの文字列操作についてはこちら↓
文字列の様々な存在チェックは、文字れるの切り取りや、条件分岐でよく使われるので、使いこなせるようになりたいですね。
コメント