我想替换List中显示名称中的所有逗号,我该怎么办?
for (int i = 0; i < contacts.size(); i++) {
if(contacts.get(i).getDisplayName().contains(",")){
contacts.get(i).getDisplayName().replace("," , " " );
contacts.notify();
}
}
答案 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循环,则代码更清晰。