删除java中的空格和特殊字符

时间:2014-04-08 11:44:35

标签: java regex string

我有一些字符串,其中包含一些特殊字符和空格。我想删除空格和特殊字符我正在这样做

String str =  "45,%$^ Sharma%$&^,is,46&* a$# java#$43 Developer$#$^ in#$^ CST&^* web*&(,but He%^&^% want to move@!$@# in another team";
    System.out.println( str.replaceAll("[^a-zA-Z]", " ").replaceAll("\\s+"," "));


Output :- sharma is a java Developer in CST web but He want to move in another team

我可以使用单一操作吗?如何?

4 个答案:

答案 0 :(得分:14)

用一个空格替换任何非字母序列:

str.replaceAll("[^a-zA-Z]+", " ")

您可能还想在替换后应用trim()

如果您想支持英语以外的语言,请使用"[^\\p{IsAlphabetic}]+""[^\\p{IsLetter}]+"。有关差异,请参阅this question

答案 1 :(得分:2)

OR运算符|应该工作:

System.out.println(str.replaceAll("([^a-zA-Z]|\\s)+", " "));

实际上,空间根本不存在:

System.out.println(str.replaceAll("[^a-zA-Z]+", " "));

答案 2 :(得分:1)

试试这个:

str.replaceAll("[\\p{Punct}\\s\\d]+", " ");

用一个空格替换标点符号,数字和空格。

答案 3 :(得分:0)

您可以在下面使用删除非字符的任何内容(A-Z或a-z)。

str.replaceAll("[^a-zA-Z]","");