我试图使用BufferedReader获取arraylist上元素的索引。它完美地处理并且没有错误,但是当我每次给出input元素时,它给出-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"));
}
}
我想要发生的是输出必须等于它们的索引。像Mama = 0,Papa = 1等等......
答案 0 :(得分:4)
尝试indexOf(input)
,不带引号。如果数组预计包含string
"input"
,那么您所编写的内容才有意义。
答案 1 :(得分:1)
假设您确实在提示符处正确提供了请求的字符串(包括正确的大小写),您应该调用
a1.indexOf(input);
即没有引号。否则,你总是试图找到字符串&#34;输入&#34;的索引,当然是-1,因为ArrayList
中没有这样的字符串;