我正在使用数组创建一个地址簿程序。我已经完成了添加和打印数据选项。但现在我坚持使用搜索/更新选项。 如果元素存在于我的数组中,这是我搜索元素的代码。
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选项中输入的数据的数量。
答案 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函数而不是==。