2013-10-25 2 views
1

Я использую код, чтобы удалить все специальные символы из строки, но также удаляет белые пробелы. как я могу исключить пробелы? i.e Мне нужно иметь пробелы как есть.Удаление специальных символов из строки

String alphaAndDigits = keyword.replaceAll("[^a-zA-Z0-9]+",""); 
+2

просто добавить их в регулярное выражение? '" [^ a-zA-Z0-9 \ t \ n \ r] + "'? – iluxa

+0

@iluxa Работает как Charm! Благодарю. – Benjamin

ответ

0
 String alphaAndDigits = "hello&%*..sad**"; 
     Pattern ptn = Pattern.compile("[^S a-zA-Z0-9]"); 
     Matcher match = ptn.matcher(alphaAndDigits); 
     while (match.find()) { 
      String str = match.group(); 
      alphaAndDigits =alphaAndDigits.replaceAll("\\" + str, ""); 
     } 
     System.out.println(alphaAndDigits); 
2
String alphaAndDigits = keyword.replaceAll("[^A-Za-z\\d\\s]+",""); 
  • \s являются согласованями для непечатаемого [ \t\n\x0b\r\f]
  • \d является согласованями для цифр [0-9]

String alphaAndDigits = keyword.replaceAll("[^A-Za-z0-9 \t\n\x0b\r\f]+","");

будет таким же, если вы предпочитаете, чтобы

Смежные вопросы