如何在java中删除字符串中的所有特殊字符?
我想从字符串中删除所有特殊字符,我尝试了stackoverflow中给出的许多选项,但没有一个适合我 这是我的密码:如何在java中删除字符串中的所有特殊字符?,java,Java,我想从字符串中删除所有特殊字符,我尝试了stackoverflow中给出的许多选项,但没有一个适合我 这是我的密码: public class convert { public static void main(String[] args) { try { List<List<String>> outerList = new ArrayList<List<String>>();
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();
}
}
}
公共类转换{
公共静态void main(字符串[]args){
试试{
List outerList=new ArrayList();
添加(新的ArrayList(asList(“11-”,“2”));
添加(新的ArrayList(asList(“(2^”,“1”)));
添加(新的ArrayList(asList(“11”、“3”));
int i,j;
对于(i=0;i在非字母数字的情况下,您可以使用
String value = "hello@() world";
value = value.replaceAll("[^A-Za-z0-9]", "");
System.out.println(value) // => helloworld
类似的问题已经被问到了(简单的)错误是s.replaceAll(…)
不会更改s
,但会生成一个新的更改字符串:
String s = outerList.get(i).get(j).replaceAll("[^\\w\\s]", "");
outerList.get(i).set(j, s);
在Apache Commons Lang()上使用StringUtils
:
什么是特殊字符?不是字母数字字符?命令字符?范围为[32..255]-ASCII nut Not Command?请注意,您可以使用\p{Alnum}
而不是A-Za-z0-9
@AnoopDobhal不要忘记String
是不可变的,因此您必须将值赋回到String
:value=value.replaceAll(…)
@Enermis:OP不想要你提供的例子,他想要的是提示/答案,在他的代码中他错在哪里..哪种方法可以做到这一点?我想这篇文章的作者忘了提到使用StringUtils的stripAccents方法