틸드, 곡절 부호, 캐럿, 움라우트, 캐론과 같은 발음 구별 부호가 변경될 수 있습니다. 문자의 발음. 효율적인 검색 및 비교를 용이하게 하려면 이러한 표시를 제거하고 문자의 "간단한" 대응 부분을 가져와야 할 수도 있습니다.
유니코드 정규화 및 정규식을 활용하여 다음 Java 구현 발음 구별 부호를 효과적으로 제거합니다.
import java.text.Normalizer; import java.util.regex.Pattern; public class DiacriticStripper { private static final Pattern DIACRITICS_PATTERN = Pattern.compile("[\p{InCombiningDiacriticalMarks}\p{IsLm}\p{IsSk}\u0591-\u05C7]+"); public static String stripDiacritics(String input) { String normalizedInput = Normalizer.normalize(input, Normalizer.Form.NFD); return DIACRITICS_PATTERN.matcher(normalizedInput).replaceAll(""); } }
예를 들어 입력 문자열은 "ńūňñṅņṇṋṉ̈ɲSONᶇɳş"는 "n"으로 변환됩니다.
제공된 솔루션은 발음 구별 부호를 구체적으로 해결합니다. 추가로 분음 부호가 없는 특수 문자를 처리해야 하는 경우 보다 포괄적인 문자열 단순화 방법을 사용할 수 있습니다.
import java.text.Normalizer; import java.util.regex.Pattern; public class StringSimplifier { private static final Pattern DIACRITICS_PATTERN = Pattern.compile("[\p{InCombiningDiacriticalMarks}\p{IsLm}\p{IsSk}\u0591-\u05C7]+"); public static String simplify(String input) { String normalizedInput = Normalizer.normalize(input, Normalizer.Form.NFD); String diacriticStripped = DIACRITICS_PATTERN.matcher(normalizedInput).replaceAll(""); // Replace additional non-diacritic special characters using a custom mapping // ... return simplifiedString.toLowerCase(); } }
이 방법은 더 넓은 범위의 문자를 고려하여 보다 포괄적인 문자열 단순화 프로세스를 제공합니다.
위 내용은 Java의 유니코드 문자열에서 분음 기호를 효율적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!