好吧,我做了一个电话簿,做了如下Arraylist.indexOf()区分大小写
- 添加新联系人
- 编辑联系人的电话
- 删除联系人
- 按名称 搜索
- 通过电话搜索
- 查看所有联系人
- 恢复出厂设置
- 退出
我已经完成它,它工作正常,除了一件事。如果名称存储为例如“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搜索字符串。或者你也可以重写数组列表的'indexOf'操作,但是我认为这个工作太多了。 – Codebender
正如我删除的答案显示,这里没有快速修复。如果你用小写字母存储名字,那么你可以使用'name.indexOf(temp.toLowerCase())'这样的东西。但是,那么您将丢失存储数据中的案例分辨率。 –
YOu可以使用'.toLowerCase()' –