ホームページ >データベース >mysql チュートリアル >SQL の「LIKE」演算子機能を使用して Java コンパレータを実装するにはどうすればよいですか?

SQL の「LIKE」演算子機能を使用して Java コンパレータを実装するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-26 21:26:15704ブラウズ

How Can I Implement a Java Comparator with SQL's `LIKE` Operator Functionality?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。