>Java >java지도 시간 >Java에서 영어가 아닌 문자를 영어 알파벳으로 변환하는 방법은 무엇입니까?

Java에서 영어가 아닌 문자를 영어 알파벳으로 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-09 15:18:02193검색

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

Java에서 영어가 아닌 문자를 영어 알파벳으로 변환

영어가 아닌 문자는 텍스트 데이터 작업 시 문제가 될 수 있습니다. 처리를 간소화하려면 이러한 문자를 해당하는 영어 알파벳으로 변환해야 하는 경우가 많습니다. 유니코드 문자의 수가 엄청나게 많기 때문에 이 작업은 어려울 수 있습니다.

문제 설명

문제는 유니코드 차트의 유사한 문자를 식별하고 유니코드 차트의 문자로 변환하는 데 있습니다. 영어 알파벳. 예를 들어 문자 "A"의 여러 변형이 존재하여 분류가 어렵습니다.

해결책

Java에서 이 문제를 해결하려면 Normalizer 클래스를 활용하고 정규식. 다음 접근 방식은 변환 프로세스를 단순화합니다.

  1. 문자열 정규화:

    • Normalizer.normalize(str, Normalizer.Form. NFD) 악센트 부호가 있는 문자를 기본 문자로 분해한 후 이를 결합합니다. 분음 부호.
  2. 분음 부호 제거:

    • 정규 표현식을 사용하여 결합 분음 부호를 제거합니다. 예는 다음과 같습니다. 패턴 패턴 = Pattern.compile("\p{InCombiningDiaticalMarks} ");
  3. 분음부호 바꾸기:

    • matcher.replaceAll("")을 사용하여 결합 발음 구별 부호를 다음으로 대체합니다. 빈 문자열.

이 방법은 주로 악센트 문자에서 발음 구별 기호(악센트)를 제거하여 해당 문자를 해당하는 영어 알파벳으로 효과적으로 변환합니다.

다음 Java 코드는 이를 보여줍니다. 접근 방법:

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
    }
}

위 내용은 Java에서 영어가 아닌 문자를 영어 알파벳으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.