如何在java中删除字符串中的所有特殊字符?

如何在java中删除字符串中的所有特殊字符?,java,Java,我想从字符串中删除所有特殊字符,我尝试了stackoverflow中给出的许多选项,但没有一个适合我 这是我的密码: public class convert { public static void main(String[] args) { try { List<List<String>> outerList = new ArrayList<List<String>>();

我想从字符串中删除所有特殊字符,我尝试了stackoverflow中给出的许多选项,但没有一个适合我

这是我的密码:

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方法