Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Pembanding Java dengan Fungsi Pengendali `LIKE` SQL?
Melaksanakan Pembanding Java dengan Semantik Operator 'LIKE' SQL
Dalam SQL, operator 'LIKE' digunakan secara meluas untuk pemadanan berdasarkan rentetan pada corak tertentu. Untuk mencapai kefungsian serupa dalam Java, kami boleh mencipta pembanding tersuai yang mempamerkan gelagat yang sama.
Penyelesaian Menggunakan Ungkapan Biasa
Ekspresi biasa Java boleh digunakan untuk meniru pengendali 'LIKE'. Dengan menggunakan aksara kad bebas '*', sebarang jujukan aksara boleh dipadankan. Sebagai contoh, ungkapan biasa berikut akan sepadan dengan mana-mana rentetan yang mengandungi 'ital' di mana-mana sahaja:
.*ital.*
Begitu juga, pemegang tempat aksara tunggal boleh diwakili oleh titik('.'). Jadi, ungkapan biasa di bawah akan memadankan mana-mana rentetan dengan 'gi' diikuti dengan mana-mana aksara tunggal, berakhir dengan 'a':
.*gi.a.*
Untuk memadankan titik literal, elakkannya menggunakan garis miring:
\.
Melaksanakan Pembanding
Menggunakan ungkapan biasa, kami kini boleh melaksanakan Java pembanding yang berkelakuan seperti pengendali SQL 'LIKE':
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; } }
Contoh Penggunaan
Untuk menggunakan pembanding, hanya buat seketika dan bandingkan rentetan menggunakan 'bandingkan' kaedah:
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
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pembanding Java dengan Fungsi Pengendali `LIKE` SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!