Rumah >Java >javaTutorial >Bagaimana untuk Menukar Aksara Bukan Bahasa Inggeris kepada Abjad Inggeris di Jawa?

Bagaimana untuk Menukar Aksara Bukan Bahasa Inggeris kepada Abjad Inggeris di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-09 15:18:02193semak imbas

How to Convert Non-English Characters to English Alphabet in Java?

Menukar Aksara Bukan Inggeris kepada Abjad Inggeris di Jawa

Aksara bukan Inggeris boleh menimbulkan cabaran apabila menggunakan data teks. Untuk menyelaraskan pemprosesan, selalunya perlu menukar aksara ini kepada abjad Inggeris yang setara. Tugas ini boleh menjadi menakutkan, memandangkan bilangan aksara Unikod yang banyak.

Pernyataan Masalah

Cabarannya terletak pada mengenal pasti dan menukar aksara yang serupa daripada carta Unikod kepada huruf dalam abjad Inggeris. Sebagai contoh, beberapa variasi huruf "A" wujud, menjadikan pengelasan sukar.

Penyelesaian

Untuk menangani isu ini di Java, anda boleh memanfaatkan kelas Normalizer dan ungkapan biasa. Pendekatan berikut memudahkan proses penukaran:

  1. Normalkan Rentetan:

    • Gunakan Normalizer.normalize(str, Normalizer.Form. NFD) untuk menguraikan aksara beraksen kepada aksara asasnya diikuti dengan penggabungannya diakritik.
  2. Alih Keluar Diakritik:

    • Gunakan ungkapan biasa untuk mengalih keluar diakritik yang bergabung. Berikut ialah contoh: Corak corak = Pattern.compile("\p{InCombiningDiacriticalMarks} ");
  3. Ganti Diakritik:

    • Gunakan matcher.replaceAll("") untuk menggantikan diakritik yang digabungkan dengan yang kosong rentetan.

Kaedah ini terutamanya mengalih keluar tanda diakritik (aksen) daripada aksara beraksen, dengan berkesan menukarkannya kepada abjad Inggeris yang setara.

Contoh

Kod Java berikut menunjukkan perkara ini pendekatan:

import java.text.Normalizer;
import java.util.regex.Pattern;

public class ConvertAccentedCharsToEnglish {

    public static String deAccent(String str) {
        String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
        Pattern pattern = Pattern.compile("\p{InCombiningDiacriticalMarks}+");
        return pattern.matcher(nfdNormalizedString).replaceAll("");
    }

    public static void main(String[] args) {
        String accentedString = "tђє Ŧค๓เℓy";
        String convertedString = deAccent(accentedString);
        System.out.println(convertedString); // Output: the Family
    }
}

Atas ialah kandungan terperinci Bagaimana untuk Menukar Aksara Bukan Bahasa Inggeris kepada Abjad Inggeris di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn