Mengalih keluar Tanda Diakritik daripada Aksara Unikod
Tanda diakritik, seperti tilde, umlaut dan circumflex, boleh mengubah suai sebutan dan ejaan aksara . Untuk memudahkan carian dan perbandingan, tanda ini mungkin perlu dibuang. Begini cara untuk mengalih keluar tanda diakritik daripada aksara Unikod dalam Java:
Menggunakan Borang Normalisasi NFD dan Ungkapan Biasa
Kaedah normalize(Normalizer.Form.NFD) menguraikan Unicode rentetan ke dalam aksara asasnya dan tanda diakritik. Dengan menggabungkan ini dengan ungkapan biasa yang sepadan dengan tanda diakritikal, anda boleh mengeluarkannya daripada rentetan.
import java.util.regex.Pattern; public class DiacriticRemover { public static final Pattern DIACRITICS_PATTERN = Pattern.compile("[\p{InCombiningDiacriticalMarks}]"); public static String removeDiacritics(String str) { return DIACRITICS_PATTERN.matcher(str).replaceAll(""); } }
Penggunaan Contoh:
String withDiacritics = "Björń"; String withoutDiacritics = DiacriticRemover.removeDiacritics(withDiacritics); System.out.println(withoutDiacritics); // Output: Bjorn
Penyederhanaan Rentetan Dipertingkat
Untuk mengendalikan aksara khas bukan diakritik yang boleh menjejaskan carian dan perbandingan, pertimbangkan untuk menggunakan ImmutableMap Google dan pusingan pembersihan tambahan.
import com.google.common.collect.ImmutableMap; public class StringSimplifier { private static final ImmutableMap<String, String> NONDIACRITICS = ImmutableMap.<String, String>builder() // ... (define replacements here) .build(); public static String simplifiedString(String str) { return NONDIACRITICS.entrySet().stream() .reduce(str, (s, entry) -> s.replaceAll(entry.getKey(), entry.getValue()), String::concat); } }
Penggunaan Contoh:
String withNonDiacritics = "Białystok"; String simplified = StringSimplifier.simplifiedString(withNonDiacritics); System.out.println(simplified); // Output: Bialystok
Dengan menggunakan teknik ini, anda boleh mengalih keluar tanda diakritik dan permudahkan rentetan untuk keupayaan carian dan perbandingan yang dipertingkatkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Tanda Diakritik daripada Rentetan Unicode di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!