>我有一个字符串,其中包含一些字符和符号,其中一些具有ascii代码,其中一些没有;我已经尝试了以下代码,我可以从中转换字符而不是符号
String strValue = "Ã – string çöntäining nön äsçii çhäräçtérs couldn’t";
String str = Normalizer.normalize(strValue, Normalizer.Form.NFD);
System.out.println(str);
System.out.println( str.replaceAll( "[^\p{ASCII}]","") );
输出为 :
à – string çöntäining nön äsçii çhäräçtérs couldn’t
A string containing non ascii characters couldnt
我还想要从提供的字符串值中获取" --
"和 "'
"。
如果我不进行规范化,它会将我的字符串转换为
? ? string ??nt?ining n?n ?s?ii ?h?r??t?rs couldn?t
只是不要用""
替换想要的字符:
String strValue = "Ã – string çöntäining nön äsçii çhäräçtérs couldn’t";
String str = Normalizer.normalize(strValue, Normalizer.Form.NFD);
System.out.println(str);
System.out.println( str.replaceAll( "[^\p{ASCII}–’]","") ); // ie. replace not (ascii or – or ’)
输出:
à – string çöntäining nön äsçii çhäräçtérs couldn’t
A – string containing non ascii characters couldn’t
演示:https://ideone.com/6zpYao
如果您希望专门替换这些字符,可以先替换它们。
str = str.replaceAll("’", "'");
str = str.replaceAll("–", "--");
str = str.replaceAll( "[^\p{ASCII}–’]","");