如何从java中的字符串中删除所有特殊字符?
我想从字符串中删除所有特殊字符,我尝试了很多在stackoverflow中给出的选项,但它们都不适用于我。如何从java中的字符串中删除所有特殊字符?
这里是我的代码:
public class convert {
public static void main(String[] args) {
try {
List<List<String>> outerList = new ArrayList<List<String>>();
outerList.add(new ArrayList<String>(asList("11-","2")));
outerList.add(new ArrayList<String>(asList("(2^","1")));
outerList.add(new ArrayList<String>(asList("11","3)")));
int i,j;
for(i=0;i<outerList.size();i++){
for(j=0;j<outerList.get(0).size();j++){
outerList.get(i).get(j).replaceAll("[^\\w\\s]", "");
if(outerList.get(i).get(j).matches("-?\\d+"){
continue;
}else{
System.out.println("special characters not removed");
System.exit(0);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
的(简单的)错误是, s.replaceAll(...)
不更改s
但生成新的更改的字符串:
String s = outerList.get(i).get(j).replaceAll("[^\\w\\s]", "");
outerList.get(i).set(j, s);
它的工作原理....... – 2014-09-11 10:26:03
中的非字母数字字符的情况下,你可以使用
String value = "[email protected]() world";
value = value.replaceAll("[^A-Za-z0-9]", "");
System.out.println(value) // => helloworld
类似的东西已经被问here
我用过这个,但没有工作 – 2014-09-11 10:08:10
请注意,您可以使用'\ p {Alnum}'而不是'A-Za-z0-9'。 – 2014-09-11 10:08:25
@AnoopDobhal不要忘记'String'是不可变的,所以你必须把值赋给'String':'value = value.replaceAll(...)' – 2014-09-11 10:10:05
使用StringUtils
在Apache的百科全书郎(http://commons.apache.org/proper/commons-lang/):
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
这种方法是什么? – JustinKSU 2017-04-17 21:55:14
什么特殊字符?不是字母数字的?命令?在范围[32..255] - ASCII螺母不是命令? – 2014-09-11 10:03:05