> Java > java지도 시간 > Java의 유니코드 문자열에서 분음 부호를 제거하는 방법은 무엇입니까?

Java의 유니코드 문자열에서 분음 부호를 제거하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-17 05:17:24
원래의
946명이 탐색했습니다.

How to Remove Diacritical Marks from Unicode Strings in Java?

유니코드 문자에서 발음 구별 부호 제거

물결표, 움라우트, 곡절부호와 같은 발음 구별 부호는 문자의 발음과 철자를 수정할 수 있습니다. . 검색과 비교를 용이하게 하려면 이러한 표시를 제거해야 할 수도 있습니다. 다음은 Java의 유니코드 문자에서 발음 구별 부호를 제거하는 방법입니다.

정규화 형식 NFD 및 정규 표현식 사용

normalize(Normalizer.Form.NFD) 메소드는 유니코드를 분해합니다. 문자열을 기본 문자와 발음 구별 부호로 변환합니다. 이를 발음 구별 부호와 일치하는 정규식과 결합하면 문자열에서 이를 제거할 수 있습니다.

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("");
    }
}
로그인 후 복사

샘플 사용법:

String withDiacritics = "Björń";
String withoutDiacritics = DiacriticRemover.removeDiacritics(withDiacritics);
System.out.println(withoutDiacritics); // Output: Bjorn
로그인 후 복사

향상된 문자열 단순화

분음 부호가 없는 특수 문자를 처리하려면 검색 및 비교에 영향을 미치려면 Google의 ImmutableMap 및 추가 정리 라운드 사용을 고려하세요.

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);
    }
}
로그인 후 복사

샘플 사용법:

String withNonDiacritics = "Białystok";
String simplified = StringSimplifier.simplifiedString(withNonDiacritics);
System.out.println(simplified); // Output: Bialystok
로그인 후 복사

이러한 기술을 사용하면 다음을 제거할 수 있습니다. 향상된 검색 및 비교 기능을 위해 발음 구별 부호를 표시하고 문자열을 단순화합니다.

위 내용은 Java의 유니코드 문자열에서 분음 부호를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿