Я пытаюсь получить индекс элемента в arraylist с использованием BufferedReader. Он отлично обрабатывается и не содержит ошибок, но когда каждый раз, когда я предоставлял элемент ввода, он выводит вывод -1. Любой элемент, он всегда -1. Что не так?
import java.util.ArrayList;
import java.io.*;
class family {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input;
ArrayList<String> al = new ArrayList<String>();
al.add("Mama");
al.add("Papa");
al.add("Sister");
al.add("baby");
System.out.println(al);
System.out.println("Family Member Number: ");
input = br.readLine();
System.out.println(al.indexOf("input"));
}
}
Я хочу, чтобы результат был равен их индексу. Как Мама = 0, Папа = 1 и так далее...
Попробуйте indexOf(input)
без кавычек. То, что вы написали, имеет смысл только в том случае, если массив должен содержать string
"input"
.
Предполагая, что вы правильно отправляете запрошенную строку в приглашении (включая правильный случай), вы должны позвонить
a1.indexOf(input);
т.е. без кавычек. В противном случае вы всегда пытаетесь найти индекс строки "input", который, конечно, -1, так как у вас нет такой строки в ArrayList
;