Поиск элемента в массиве
Я создаю программу адресной книги с использованием массива. Я сделал с опцией добавления и печати данных. Но теперь я застрял с поиском / обновлением. Это мой код в поиске элемента, если он существует в моем массиве или нет.
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 содержит количество данных, введенных пользователем в опции добавления.
2 ответа
Решение
Вам нужно использовать 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
Я думаю, что вы должны использовать функцию.equals вместо ==.