Java

Как сравнить элементы массива с другой переменной?

Есть массив с n кол-вом строк, есть строка, которая вводится. Надо сравнить и при совпадении присвоить номер элемента новой переменной. Совпадение может быть только 1.
Ну и в каком месте у тебя возникает проблема?)
АГ
Александр Гончаров
89 589
Лучший ответ
Пусть есть массив a и строка s.

Скажем, так:

String[] a = new String[] {"Петя", "Нюра", "Коля", "Саша"};
String s = "Коля";

Найдем s в массиве a и назовем индекс.
Для этого будем в цикле менять переменную i от нуля до длины массива (исключительно, то есть для длины n наибольшее i будет равно n − 1).

int index = -1;

for (int i = 0; i < a.length; i++) {
if (s.equals(a[i])) {
index = i; //Запомнили индекс совпавшего элемента
break; //Вышли из цикла
}
}

Далее: если индекс остался -1, как раньше, то имя не найдено. Иначе найдено.

if (index < 0) {
System.out.println("Не знаю тебя, "+s);
} else {
System.out.println("Ааа, тот самый "+s+"! Ну проходи. Твой индекс "+index);
}
Гузачёв Пётр при всей крутости вашего кода, вы явно не вчитывались в задание...
У меня и так КПД низкий, так что еще один ответ, что наверняка не станет лучшим, намного хуже не сделает.
Занятно, что в С++ это все можно провернуть силами стандартной библиотеки в одну строку кода

#include
#include
#include
#include

int main(){
std::vector list = {"Вася", "Петя", "Маша", "Вова"};
std::string name = "Маша";

size_t dist = std::distance(list.cbegin(), std::find(list.cbegin(), list.cend(), name));

std::cout << dist << std::endl;

return 0;
}

Я почему-то почти уверена, что в Java тоже так можно
Garush Melqonyan
Garush Melqonyan
11 157
Гузачёв Пётр откуда такая уверенность?

в вашем с++ коде вы оперируете готовыми портами ввода/вывода, придуманными чтоб вам думать не надо было...
да и в смысл вызываемых методов вы особо не вникаете... некогда да?
метод equals