我正在尝试从字符串数组中删除所有非数字字符,以便将其与数字列表进行比较。拆分有效,但我无法比较两个集合
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);
}
答案 0 :(得分:1)
在Java中,字符串是不可变的。这意味着w.replaceAll("[^\\d.]", "");
将创建不同的字符串,w
将保持不变。将该表达式分配给w
以存储它:
w = w.replaceAll("[^\\d.]", "");
答案 1 :(得分:0)
如果不将字符串重新分配给同一个变量或新变量,则无法修改字符串。
答案 2 :(得分:0)
String是不可变的,所以如果你调用某个函数,那么它不会在同一个对象中改变。
您必须将此行更改为
w= w.replaceAll("[^\\d.]", "");