javaで後方一致検索を行う場合は、「endsWith」メソッドを利用すると簡単に実装出来ます。以下のサンプルコードでは事前にnull、trim後の文字列でemptyチェック後の文字列で後方一致検索を行うようにしています。
JAVAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/** * <p>[概 要] 文字列の後方一致検索</p> * <p>[詳 細] パラメータの何れかがnull、emptyの場合は全てfalseを返します。</p> * <p>[備 考] </p> * @param str 比較文字列 * @param pre 接頭辞 * @return 後方一致:true、後方不一致:false */ public static Boolean searchRear(String str, String pre){ Boolean result = false; if(str != null && pre != null && !str.trim().isEmpty() && !pre.trim().isEmpty()) { if(str.trim().endsWith(pre.trim())) { result = true; } } return result; } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
@Test public void searchRearTest() { // 準備 String str1 = null; String str2 = ""; String str3 = "abc"; String str4 = "dabc"; String pre1 = null; String pre2 = ""; String pre3 = "abc"; String pre4 = "c"; String pre5 = "dabc"; String pre6 = "xyz"; // 実行 Boolean result1 = UtilSample1.searchRear(str1, pre1); Boolean result2 = UtilSample1.searchRear(str2, pre1); Boolean result3 = UtilSample1.searchRear(str3, pre1); Boolean result4 = UtilSample1.searchRear(str3, pre2); Boolean result5 = UtilSample1.searchRear(str3, pre3); Boolean result6 = UtilSample1.searchRear(str3, pre4); Boolean result7 = UtilSample1.searchRear(str3, pre5); Boolean result8 = UtilSample1.searchRear(str3, pre6); Boolean result9 = UtilSample1.searchRear(str4, pre3); // 検証 assertFalse("戻り値がfalseではありません。", result1); assertFalse("戻り値がfalseではありません。", result2); assertFalse("戻り値がfalseではありません。", result3); assertFalse("戻り値がfalseではありません。", result4); assertTrue("戻り値がtrueではありません。", result5); assertTrue("戻り値がtrueではありません。", result6); assertFalse("戻り値がfalseではありません。", result7); assertFalse("戻り値がfalseではありません。", result8); assertTrue("戻り値がtrueではありません。", result9); } |