删除所有号码" {"来自字符串数组

时间:2014-12-12 11:57:38

标签: java arrays replaceall

我正在尝试从字符串数组中删除所有非数字字符,以便将其与数字列表进行比较。拆分有效,但我无法比较两个集合

for(String w:a1)
    {
        w=w.replaceAll("[^\\d.]", "");

        if(dContacts.getNumber().equals(w))
        {
            System.out.println("Compared1234567");
        }

        System.out.println("---6545678909876789876hijkhijkhijkjh"+dContacts.getNumber());
        System.out.println("Arraylistextract"+w);
    }

3 个答案:

答案 0 :(得分:1)

在Java中,字符串是不可变的。这意味着w.replaceAll("[^\\d.]", "");将创建不同的字符串,w将保持不变。将该表达式分配给w以存储它:

w = w.replaceAll("[^\\d.]", "");

答案 1 :(得分:0)

如果不将字符串重新分配给同一个变量或新变量,则无法修改字符串。

答案 2 :(得分:0)

String是不可变的,所以如果你调用某个函数,那么它不会在同一个对象中改变。

您必须将此行更改为

w= w.replaceAll("[^\\d.]", "");