编程语言
首页 > 编程语言> > java – 从Unicode字符串中删除重音的简便方法?

java – 从Unicode字符串中删除重音的简便方法?

作者:互联网

参见英文答案 > Is there a way to get rid of accents and convert a whole string to regular letters?                                    11个
我想改变这句话:

Et ça sera sa moitié.

至 :

Et ca sera sa moitie.

有没有一种简单的方法在Java中执行此操作,就像我在Objective-C中所做的那样?

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

标签:java,string,unicode,diacritics
来源: https://codeday.me/bug/20190917/1809801.html