반응형
유니 코드 문자열에서 악센트를 제거하는 쉬운 방법?
이 질문에 이미 답변이 있습니다.
이 문장을 변경하고 싶습니다.
Et ça sera sa moitié.
받는 사람 :
Et ca sera sa moitie.
Objective-C에서와 같이 Java에서 쉽게 수행 할 수있는 방법이 있습니까?
NSString *str = @"Et ça sera sa moitié.";
NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *newStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
마지막으로 Normalizer
클래스 를 사용하여 해결했습니다 .
import java.text.Normalizer;
public static String stripAccents(String s)
{
s = Normalizer.normalize(s, Normalizer.Form.NFD);
s = s.replaceAll("[\\p{InCombiningDiacriticalMarks}]", "");
return s;
}
아마도 가장 쉽고 안전한 방법은 Apache Commons LangStringUtils
에서 사용 하는 것입니다.
StringUtils.stripAccents(String input)
문자열에서 분음 부호 (~ = 악센트)를 제거합니다. 케이스는 변경되지 않습니다. 예를 들어 'à'는 'a'로 대체됩니다. 합자는 그대로 유지됩니다.
StringUtils. stripAccents ()
유일한 차이점은 솔루션에 비해 a +
가 아니라 a []
를 사용한다는 것입니다. 둘 다 효과가 있다고 생각하지만 여기에도있는 것이 좋습니다.
String normalized = Normalizer.normalize(input, Normalizer.Form.NFD);
String accentRemoved = normalized.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
Java 6 이상을 사용한다고 가정하면 Normalizer
악센트를 분해 할 수있는를 살펴본 다음 정규식을 사용하여 결합 악센트를 제거 할 수 있습니다.
그렇지 않으면을 사용하여 동일한 결과를 얻을 수 있습니다 ICU4J
.
코 틀린
fun stripAccents(s: String): String
{
var string = Normalizer.normalize(s, Normalizer.Form.NFD)
string = Regex("\\p{InCombiningDiacriticalMarks}+").replace(string, "")
return string
}
감사합니다
public static final Pattern DIACRITICS_AND_FRIENDS = Pattern.compile(
"[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+");
private static String stripDiacritics(String str) {
str = Normalizer.normalize(str, Normalizer.Form.NFD);
str = DIACRITICS_AND_FRIENDS.matcher(str).replaceAll("");
return str;
}
=> stripDiacritics ( "Et Ça sera sa moitié.");
참고 URL : https://stackoverflow.com/questions/15190656/easy-way-to-remove-accents-from-a-unicode-string
반응형
'program tip' 카테고리의 다른 글
변수가 튜플, 문자열 또는 정수인지 확인하는 방법은 무엇입니까? (0) | 2020.11.19 |
---|---|
Postgresql 어댑터 (pg) : 서버에 연결할 수 없습니다. (0) | 2020.11.19 |
"캐시 된 버전이 없습니다… 오프라인 모드에서 사용할 수 있습니다." (0) | 2020.11.19 |
Android : 파일 생성 날짜를 얻는 방법은 무엇입니까? (0) | 2020.11.19 |
Android : GridView에서 강조 표시 비활성화 (0) | 2020.11.19 |