数组中的搜索元素

时间:2014-12-22 03:35:27

标签: arrays addressbook

我正在使用数组创建一个地址簿程序。我已经完成了添加和打印数据选项。但现在我坚持使用搜索/更新选项。 如果元素存在于我的数组中,这是我搜索元素的代码。

public void update_data(){
    String user_input_data;
    int search_data = 0;
    System.out.println("Enter the data that you want to search: ");
    user_input_data = user_data.nextLine();
    while(search_data<data_recorded){
        if(user_input_data == AddressBook_Array_name[search_data])
        {
            System.out.println("Data found!");
        }
        else
        {
            System.out.println("Data not found!"); 
        }
        search_data++;
    }
}

但是当我运行该程序时。它总是返回false并打印else语句。 我不知道它有什么问题。无论如何,data_recorded变量保存用户在add选项中输入的数据的数量。

2 个答案:

答案 0 :(得分:1)

您需要在java中使用equals()而不是==进行比较。

if (user_input_data.equals(AddressBook_Array_name[search_data]))

此外,您可能不想使用foreach循环(不需要search_data变量)。

for(String addressBookElem : AddressBook_Array_name) {
   if (user_input_data.equals(addressBookElem)) {
     System.out.println("Data found!");
     return;
   }
}
System.out.println("Data not found!"); // reaches this statement if data not present

答案 1 :(得分:0)

我认为你应该使用.equals函数而不是==。