2017-01-17 5 views
0

У меня есть строка, которая содержит некоторые символы и символы, в которых некоторые из них имеют код ascii, а некоторые из них не имеют; Я попытался следующий код, из которого я могу преобразовать символы, но не символыСимволы значений без 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 
+0

как символы ('-' и'»') ** не ** .. –

+0

ASCII Да я знаю, но есть ли способ, чтобы получить его –

+0

не заменить их на „“? –

ответ

2

Просто не хотел заменить символы с "":

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 

demo: https://ideone.com/6zpYao

+0

Ох, настолько я не мог бы добавить в регулярное выражение –

0

Если вы хотите, чтобы эти символы были заменены специально, вы можете их заменить в первую очередь.

str = str.replaceAll("’", "'"); 
str = str.replaceAll("–", "--"); 
str = str.replaceAll("[^\\p{ASCII}–’]",""); 
Смежные вопросы