Последовательный поиск в строковом массиве

Относительно новый для Java. Я пытаюсь последовательно искать в строковом массиве, но я думаю, что с моим оператором if что-то не так, потому что логический флаг остается ложным. Код работал с массивом int, поэтому я не понимаю, что с этим не так.

public static void sequentialNameSearch(String[] array) {
    // sequential name search
    Scanner input = new Scanner(System.in);
    String value;
    int index = 0;
    boolean flag = false;
    System.out.println("\nPlease enter a name to search for");
    value = input.next();

    while (flag == false && index < array.length - 1) {
        if (array[index] == value) {
            flag = true;
            System.out.println(array[index] + " is number "
                + (index + 1) + " in the array.");
        }
        else if (index == array.length - 1)
            System.out.println("That name is not in the array");

        index++;
    }

    input.close();
}

1 ответ

Решение

Что плохого в том, что вы не можете сравнить содержимое двух строк с ==. Для этого вам следует использовать методы equals() или equalsIgnoreCase() одной из строк. Пример:

if (array[index].equals(value)) {
Другие вопросы по тегам