我为什么要打六次而不是两次

时间:2018-05-12 03:34:03

标签: java java.util.scanner

我正在尝试将一些字母输入两个不同的arrs然后打印一些结果消息,但我必须键入6次,我的结果是最后两次

    String str1[] =new String[100];
    String str2[]=new String[100];
    int count=0;
    while(true) {
        Scanner s1=new Scanner(System.in);
        if(s1.nextLine()=="END") {
            break;
        }
        str1[count]=s1.nextLine();
        Scanner s2=new Scanner(System.in);
        if(s2.nextLine()=="END") {
            break;
        }
        str2[count]=s2.nextLine();
        count++;
        System.out.println("完成第" + count + "个依赖" + "  " + s1.nextLine() +  "->" + s2.nextLine());
    }

1 个答案:

答案 0 :(得分:1)

每当您拨打nextLine时,您都会获得一个新线路(这就是为什么您必须多次输入所有内容,您不能保存所获得的值)。将String个实例与.equals进行比较,您只需要一个Scanner,不要在每个循环迭代中丢弃两个。像,

Scanner s1 = new Scanner(System.in);
while (true) {
    String a = s1.nextLine();
    if (a.equals("END")) {
        break;
    }
    str1[count] = a;
    String b = s1.nextLine();
    if (b.equals("END")) {
        break;
    }
    str2[count] = b;
    count++;
    System.out.println("完成第" + count + "个依赖" + "  " + a + "->" + b);
}