유니코드 문자에서 발음 구별 부호 제거
물결표, 움라우트, 곡절부호와 같은 발음 구별 부호는 문자의 발음과 철자를 수정할 수 있습니다. . 검색과 비교를 용이하게 하려면 이러한 표시를 제거해야 할 수도 있습니다. 다음은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!