2012-09-30 153 views
2
public class test { 
    public static void main(String[] args) { 
     String a = "so many, punctuations , haha!"; 
     a.replaceAll("[\\p{Punct}]+", ""); 
     System.out.print(a); 
    } 
} 

我试过这个方法,但标点符号仍然存在,我不明白为什么。如何删除标点符号?

replaceAll()函数不起作用。

+1

它被替换,但你需要分配的replaceAll函数的返回值,因为String类是不可变的。 – nhahtdh

+0

谢谢,我忘了字符串是不可变的。 –

回答

2

你需要这样做:

a = a.replaceAll("[\\p{Punct}]+", ""); 
+0

是的,我忘了String是不可变的:p –

3

a.replaceAll()创建一个全新的字符串,您立即忽略。

您可能想要将此新字符串分配到a