java - 这段代码中的indexOf 有什么问题?为什么当我尝试打印indexOfanswer1时得到-1?

标签 java arraylist indexof

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

最佳答案

您的所有电台名称都有空格。

s.next() 将从 Scanner 读取下一个 token ,其中不会有空格。

改用s.nextLine()

<小时/>

作为调试此类问题的一般技巧,请尝试在调试器中查看 answer1answer2 的值(甚至只是打印出来)。那么不匹配的原因应该是非常明显的。

关于java - 这段代码中的indexOf 有什么问题?为什么当我尝试打印indexOfanswer1时得到-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53778605/

相关文章:

java - CATALINA_BASE/conf/Catalina/localhost/<APPNAME>.xml 与应用程序的 context.xml 不同

java - 当子对象引用父对象时对象销毁

java - 如何更改 Java 中的日期格式?

Java 字母转大写

jquery 元素中的 javascript indexof

java - Java 中的夏令时调整

java - 将重复值从一个 ArrayList 移动到另一个 ArrayList (Java)

java - 连接 double 型和字符串进行计算

java - 为什么这个本地ArrayList会改变呢?

javascript - 如果数组是稀疏的,为什么 array.indexOf(undefined) 不起作用