Поиск элемента в массиве

Я создаю программу адресной книги с использованием массива. Я сделал с опцией добавления и печати данных. Но теперь я застрял с поиском / обновлением. Это мой код в поиске элемента, если он существует в моем массиве или нет.

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 вместо ==.

Другие вопросы по тегам