【发布时间】:2017-01-07 20:49:50
【问题描述】:
好的,我已经制作了一个电话簿,可以执行以下操作,
- 添加新联系人
- 编辑联系人的电话
- 删除联系人
- 按名称搜索
- 电话搜索
- 查看所有联系人
- 恢复出厂设置
- 退出
我已经完成了它并且它工作正常,除了一件事。如果存储了一个名称,例如“John”,而用户搜索“john”,它会打印“not found”,因为 j 没有大写,我怎样才能解决这个问题而不会搞砸我的代码。
这里是案例 2 的代码。
case 2: {
System.out.println("Enter the contact name you want to edit");
temp=s.next();
int z=name.indexOf(temp);
if(z!=-1)
{
System.out.println("Edit to?");
temp=s.next();
name.set(z, temp);
System.out.println("Name edited to "+temp);
}
else
System.out.println("Name not found");
break;
}
【问题讨论】:
-
最简单的方法是实现自己的
indexOf方法并使用equalsIgnoreCase搜索字符串。或者你也可以覆盖 arraylist 的indexOf操作,但我认为这对这份工作来说太过分了。 -
正如我删除的答案所揭示的那样,这里没有快速修复。如果您以全小写形式存储名称,则可以使用
name.indexOf(temp.toLowerCase())之类的名称。但是,您将丢失存储数据中的案例解决方案。 -
你可以使用
.toLowerCase()
标签: java