调用扫描仪方法而不使用读取内容不好?
我最近遇到了Java的Scanner的一些麻烦。 当调用诸如nextInt()
,在按Enter之后它不会消耗newline
。 我的解决方案是:
package scannerfix;
import java.util.Scanner;
public class scannerFix {
static Scanner input = new Scanner(System.in);
public static int takeInt() {
int retVal = input.nextInt();
input.nextLine();
return retVal;
}
public static void main(String[] args) {
int num = scannerFix.takeInt();
String word = input.nextLine();
System.out.println("n" + num + "t" + word);
}
}
它的工作原理,但这是我的问题 :这有什么不好?
“Enter”没有被使用,因为它等于“ n”(在Windows / Linux等),这是一个标准的分隔符。 你已经用input.nextLine();
跳到下一行了input.nextLine();
所以你的解决方案很好!
有关分隔符如何处理Scanner
类的更多信息,请参阅:
如何在Java扫描器中使用分隔符?
一个问题是它可以隐藏输入中的一些错误。 如果你期望在一行上有一个整数,而下一行是另一个整数,但是第一行包含“2 a”,那么你会将它读为2.对于某些情况,你可能想要拒绝这个输入,显示错误。
链接地址: http://www.djcxy.com/p/78357.html上一篇: Is calling Scanner methods without using the read content bad?