如何替换List <interface>中的值

时间:2015-11-16 19:18:34

标签: java android

我想替换List中显示名称中的所有逗号,我该怎么办?

 for (int i = 0; i < contacts.size(); i++) {
                if(contacts.get(i).getDisplayName().contains(",")){
                    contacts.get(i).getDisplayName().replace("," , " " );
                    contacts.notify();
                }
            }

1 个答案:

答案 0 :(得分:5)

我怀疑你需要设置显示名称。目前您正在调用String.replace来创建一个新字符串 - 但作为字符串为immutable,现有的显示名称不会被更改。我怀疑你真的想要:

for (Contact contact : contacts) {
    String displayName = contact.getDisplayName();
    if (displayName.contains(",")) {
        contact.setDisplayName(displayName.replace(",", " ");
        contacts.notify();
    }
}

或者可能更好(单一通知):

boolean anyChanged = false;
for (Contact contact : contacts) {
    String displayName = contact.getDisplayName();
    if (displayName.contains(",")) {
        contact.setDisplayName(displayName.replace(",", " ");
        anyChanged = true;
    }
}
if (anyChanged) {
    contacts.notify();
}

请注意,除非您使用其他的列表索引而不是从列表中获取值,否则如果您使用上述增强型for循环,则代码更清晰。