好吧,我做了一個電話簿,做了如下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()' –