public static void main(String[] args) {
// write your code here
ArrayList<String>line1=new ArrayList<String>();
line1.add("el marg");
line1.add("ezbt el nakhl");
line1.add("ain shams");
line1.add("el matria");
line1.add("el helmia");
Scanner s=new Scanner(System.in);
System.out.println("Entry Station");
String answer1=s.next();
Scanner a=new Scanner(System.in);
System.out.println("Exit Station");
String answer2=a.next();
System.out.println(line1.subList(line1.indexOf(answer1),line1.indexOf(answer2)));
}
}
我想打印一个火车站的子列表,该列表在入口站和出口站之间,但是有些错误,即使用户在数组列表中键入了一个站点,它也给我-1
答案 0 :(得分:2)
您所有的电台名称都带有空格。
s.next()
将从Scanner
中读取下一个标记,该标记中没有空格。
改为使用s.nextLine()
。
作为调试此类问题的一般技巧,请尝试在调试器中查看answer1
和answer2
的值(甚至只是打印出它们)。那么它为什么不匹配应该非常明显。
答案 1 :(得分:0)
验证工作站名称,即您在终端中写入的内容。因为idexOf找不到单词时返回-1值。打印写终端的站点名称,并分析可能在answer1变量和answer2中添加的空白或Enter