replaceAll在String上没有按预期工作

时间:2014-03-14 03:31:52

标签: java regex string

我有这行代码:temp5.replaceAll("\\W", "");

此时temp5的内容为:[1, 2, 3, 4],但正则表达式不会删除任何内容。当我做一个toCharArray()时,我最终得到了这个:[[, 1, ,, , 2, ,, , 3, ,, , 4, ]]

我没有正确使用正则表达式吗?我的印象是\ W应该删除所有标点符号和空格。

注意:temp5是一个String

我刚刚使用\ w,\ W和其他各种测试。所有这些的输出相同

2 个答案:

答案 0 :(得分:4)

字符串是不可变的。 replaceAll()返回包含所做更改的字符串,但不会修改temp5。所以你可能会这样做:

temp5 = temp5.replaceAll("\\W", "");

之后,temp5将为"1234"

答案 1 :(得分:0)

    String temp5="1, 2, 3, 4";

    temp5=temp5.replaceAll("\\W", "");

    System.out.println(temp5.toCharArray());

这将有助于