我有一些字符串,其中包含一些特殊字符和空格。我想删除空格和特殊字符我正在这样做
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
我可以使用单一操作吗?如何?
答案 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]","");