ホームページ >データベース >mysql チュートリアル >SQL の「LIKE」演算子機能を使用して Java コンパレータを実装するにはどうすればよいですか?
SQL の 'LIKE' 演算子セマンティクスを使用した Java コンパレータの実装
SQL では、'LIKE' 演算子は文字列ベースのマッチングに広く使用されています特定のパターンについて。 Java で同様の機能を実現するには、同じ動作を示すカスタマイズされたコンパレータを作成できます。
正規表現を使用した解決策
Java の正規表現を使用して、 「いいね」演算子。ワイルドカード文字「*」を利用すると、任意の文字シーケンスと一致させることができます。たとえば、次の正規表現は、どこにでも 'ital' を含む文字列と一致します:
.*ital.*
同様に、単一文字のプレースホルダーはドット ('.') で表すことができます。したがって、以下の正規表現は、「gi」の後に任意の 1 文字が続き、「a」で終わる任意の文字列と一致します。
.*gi.a.*
リテラルのドットと一致するには、スラッシュを使用してエスケープします。
\.
コンパレーターの実装
通常の使用式を使用して、SQL 'LIKE' 演算子のように動作する Java コンパレータを実装できるようになりました。
import java.util.Comparator; import java.util.regex.Pattern; public class LikeComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { Pattern pattern = Pattern.compile(s2); return pattern.matcher(s1).matches() ? 0 : 1; } }
使用例
コンパレータを使用するには、単純にインスタンス化します。そして、「compare」メソッドを使用して文字列を比較します:
LikeComparator comparator = new LikeComparator(); System.out.println(comparator.compare("digital", "%ital%")); // true System.out.println(comparator.compare("digital", "%gi?a%")); // true System.out.println(comparator.compare("digital", "digi%")); // true System.out.println(comparator.compare("digital", "%cam%")); // false System.out.println(comparator.compare("digital", "tal%")); // false
以上がSQL の「LIKE」演算子機能を使用して Java コンパレータを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。