使用SQL 的「LIKE」運算子語意實作Java 比較器
在SQL 中,「LIKE」運算子廣泛用於基於字串的匹配關於具體模式。為了在 Java 中實現類似的功能,我們可以建立一個表現出相同行為的自訂比較器。
使用正規表示式的解
Java 的正規表示式可以用來模擬「LIKE」運算子。透過使用通配符“*”,可以匹配任何字元序列。例如,以下正規表示式將符合任何位置包含「ital」的任何字串:
.*ital.*
類似地,單一字元佔位符可以用點('.')表示。因此,下面的正規表示式將匹配任何帶有“gi”的字串,後面跟著任何單個字符,以“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; } }
範例用法
要使用比較器,只需實例化它並使用「比較」方法:
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中文網其他相關文章!