2014-12-22 2 views
0

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

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 содержит количество данных, введенных пользователем в опции добавления.

ответ

1

Для сравнения необходимо использовать equals() вместо ==.

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

Кроме того, вместо некоторого времени вы можете использовать цикл по каждому элементу (устраняет необходимость в 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 
+0

Исправлено! Спасибо. Я новичок в этой функции equals(). –

0

Я думаю, вы должны использовать функцию .equals вместо ==.

+0

Исправлено! Спасибо. Я новичок в этой функции equals(). –

Смежные вопросы