提问人:JVamcas 提问时间:10/14/2015 更新时间:10/14/2015 访问量:358
扫描程序 hasNextLine() 的计算结果不会为 false
Scanner hasNextLine() won't evaluate to false
问:
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() 无法正常工作的问题,但我无法得到修复。这个问题的任何解决方案。输入是一个多行字符串,没有字符的哨兵。
答: 暂无答案
评论