扫描仪hasNextLine()不会评估为false

时间:2015-10-14 09:34:56

标签: java input java.util.scanner

  try {
        Scanner s = new Scanner(new BufferedInputStream(System.in));
        while (s.hasNextLine()) {
            first = true;
                int val1 = add(alpha, s.nextLine().toLowerCase().split(""));
                int val2 = add(alpha, s.nextLine().toLowerCase().split(""));
                first = false;
                while (val1 > 9 || val2 > 9) {
                    val1 = add(alpha, Integer.toString(val1).split(""));
                    val2 = add(alpha, Integer.toString(val2).split(""));
                }
                if (val1 > val2) {
                    System.out.println(format.format((val2 / (double) val1) * 100) + " %");
                } else {
                    System.out.println(format.format((val1 / (double) val2) * 100) + " %");
                }
        }
    } catch (NoSuchElementException e) {
        System.exit(0);
    }
}

static int add(String[] alpha, String[] letter) {
    int val = 0;
    for (String string : letter) {
        if (Character.isLetter(string.charAt(0))) {
            val += Arrays.asList(alpha).indexOf(string) + 1;
        } else if (!first && Character.isDigit(string.charAt(0)))
            val += Integer.parseInt(string);
    }
    return val;
}

我已经阅读了几乎所有关于Scanner hasNext()的问题都没有正常工作,但我无法修复。解决这个问题的任何方法。输入是一个多行字符串,并且没有字符的标记。

0 个答案:

没有答案