字符串检查while循环无法正常工作

时间:2012-10-08 05:52:06

标签: java loops

Scanner scanner = new Scanner(system.in);
String input = new String();

while(!input.equalsIgnoreCase("stop")) {
input = scanner.nextLine();
}

为什么这不起作用?循环永远持续。我之前已经使用过这种方法一百万次,现在它无法工作。

编辑**

好的我正在使用JGrasp(因为这是我教授希望我们使用的) 当我在netbeans中尝试这个时,它工作得很好......

EDIT2 **

首先,我不确定这是否是问题,但在我的代码中,我在主要的开头有类似的东西     扫描仪扫描仪=新扫描仪(文件); 后来就是这样的     scanner =新的扫描仪(System.in); 这就是前面的代码片段开始的地方。首先,我通过主要调用一个新方法来改变这一点,我需要带有字符串检查的while循环。我还重新格式化了循环:

Scanner scanner = new Scanner(System.in);
    String input = new String();

    while(!input.contains("stop")) {
        System.out.print("Enter an option: ");
        input = scanner.nextLine();
    }

现在它运作正常。

EDIT3 **

所以我尝试了新方法中的原始格式,它也完美无缺。我现在相信它与我如何使用文件扫描程序有关,然后使用System.in重新使用该引用作为新的扫描程序对象。我不是百分之百,但将while循环移动到它自己的方法而不是保持主要工作,所以我觉得它与它有关。

2 个答案:

答案 0 :(得分:1)

也许你应该检查一下扫描仪还有什么东西需要解析?

while(scanner.hasNextLine() && !input.equalsIgnoreCase("stop")) {
    input = scanner.nextLine();
}

答案 1 :(得分:0)

代码工作正常: 除汇编错误外,请使用System.in代替system.in

Scanner scanner = new Scanner(System.in);
String input = new String();

while(!input.equalsIgnoreCase("stop")) {
    input = scanner.nextLine();
}