我想替换列表中显示名称中的所有逗号,如何操作?
for (int i = 0; i < contacts.size(); i++) {
if(contacts.get(i).getDisplayName().contains(",")){
contacts.get(i).getDisplayName().replace("," , " " );
contacts.notify();
}
}
最佳答案
好吧,你需要设置显示名称,我想。目前您正在调用String.replace
来创建一个新的字符串,但是作为不可变的字符串,现有的显示名称不会更改。我想你真的想:
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循环,则代码会更干净。