文字列の部分一致検索を行う方法
文字列が完全に一致するかどうか調べるならequalsメソッドを使用します。
String str11 = "文字列の検索サンプルです"; String str12 = "検索"; if (str11.equals(str12)) { System.out.println( "完全一致です" ); } else { System.out.println( "完全一致ではありません" ); }
文字列を検索 indexOfメソッド
文字列を検索するには、indexOfメソッドを使用することができます。
public int indexOf(String str)
indexOfメソッドは、ある文字列から別の文字列を左側から右側に検索し、見つかった位置を返します。
該当する文字列がなかった場合は -1 が返ります。
String str21 = "文字列の検索サンプルです"; String str22 = "検索"; if (str21.indexOf(str22) != -1) { System.out.println( "部分一致です" ); } else { System.out.println( "部分一致ではありません" ); }
前方一致検索 startsWithメソッド
前方一致検索を行うには、indexOfメソッドの戻り値が 0 かどうかで判断できますが、startsWithメソッドを使用する方法もあります。
public boolean startsWith(String str)
一致した場合はtrue,不一致ならfalseになります。
String str31 = "文字列の検索サンプルです"; String str32 = "文字列の"; if (str31.startsWith(str32)) { System.out.println( "前方一致(接頭辞)です" ); } else { System.out.println( "前方一致ではありません" ); }
後方一致検索 endsWithメソッド
startsWithメソッドとは逆に後方一致検索を行うには、endsWithメソッドを使います。
public boolean endsWith(String str)
一致した場合はtrue,不一致ならfalseになります。
String str41 = "文字列の検索サンプルです"; String str42 = "サンプルです"; if (str41.endsWith(str42)) { System.out.println( "後方一致(接尾辞)です" ); } else { System.out.println( "後方一致ではありません" ); }
正規表現での検索 matchesメソッド
高度な検索はmatchesメソッドを使います。 matchesメソッドは正規表現を使用して検索を行います。
public boolean matches(String regex)
一致した場合はtrue,不一致ならfalseになります。
matchesメソッドは部分一致を検索するものではなく、完全一致を検索します。
String str51 = "文字列の検索サンプルです"; String str52 = "サンプル"; if (str51.matches(".*" + str52 + ".*")) { System.out.println( "部分一致です" ); } else { System.out.println( "部分一致ではありません" ); }
Javaで正規表現のエスケープを行うには Pattern.quote(str)を使用します。
import java.util.regex.Pattern;
String str61 = "012345[a-z][0-9][a-z]012345";
String str62 = "[a-z][0-9][a-z]";
if (str61.matches(".*" + Pattern.quote( str62 ) + ".*")) {
System.out.println( "部分一致です" );
} else {
System.out.println( "部分一致ではありません" );
}
Pattern.quote は文字列中の正規表現記号それぞれをエスケープシーケンスでエスケープするのではなく、正規表現エスケープの開始記号¥Qと終了記号¥Eで囲うだけです。
つまり次のものと同義です。
if (str61.matches(".*" + "\\Q" + str62 + "\\E" + ".*")) {
System.out.println( "部分一致です" );
} else {
System.out.println( "部分一致ではありません" );
}
関連記事
- 文字列の置き換えを行う方法 (replaceAllで気をつけること)
- Java メモリー使用量を取得する方法
- 実行中のメソッド名やクラス名を取得する方法
- Singletonパターンを使ってクラスのインスタンスを1つにする(共有クラスのリソースを削減する方法)
- ファイルのテキストデータを読み込む
- テキストデータをファイルに書き込む BufferedWriterの使用例
- Webからダウンロードして保存する DefaultHttpClientの使用例
- ファイルをコピーする InputStream,OutputStreamの使用例
- 暗号化・複合化を行う ブロック暗号
- base64変換の一覧とその詳細サンプルコード
- 型変換の一覧(キャスト)
- 処理を一定時間停止させる方法
- ファイルの拡張子を取得する
- Java
- サンプルコード
- Androidアプリ
- SDやdata、downloadなど各種ディレクトリパスの取得方法
- Mobile Network Code(MNC)の一覧[M-N]
- apkファイルインストール時のエラー一覧
- Java標準以外のライブラリ(パッケージ)を読み込む方法 jarファイルを追加する
- layoutのbackgroundで透過(transparent)を指定する方法
- テーマ機能を使ってアプリケーション全体にスタイルを適用させる方法
- SELECTタグで色を選択する場合のサンプル
- ログの出力 アプリのステータスを確認する
- アプリからネットワーク通信を行う場合
- 最初に呼び出されるJavaファイル(Activity)を指定する方法
- assetsフォルダのファイルを扱う方法 AssetManager
- 変数のデータ型
- Mobile Country Code(MCC)の一覧
- OSのバージョンと特徴
- 実機内やエミュレータ内のファイルを操作する DDMS、adbとサンプルコード
- res/drawableの画像を変更しても、変更が反映されない場合
- facebook APIを使用する時にfacebook Appsでアプリを登録するまでの流れ
スポンサーリンク