在刚开始使用Scanner时,总是会遇到一些问题
比如:InputMismatchException——除了类型错误以外(如:应该输入整型输成字符串),还有这个错误:
public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入:)"); String a = s.next(); System.out.println(a); System.out.println("请输入:)"); int b = s.nextInt(); System.out.println(b); System.out.println("请输入:)"); String c = s.next(); System.out.println(c); }
只是在输入第一个字符串的时候加了空格,然后一回车,结果就异常了:
但是如果输入的字符串是没有空格的话,结果就正确了。
所以,Scanner的next()只能接收不带空格的字符串。而nextLine()是可以接收带空格字符串的。
public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入:)"); String a = s.nextLine(); System.out.println(a); System.out.println("请输入:)"); int b = s.nextInt(); System.out.println(b); System.out.println("请输入:)"); String c = s.next(); System.out.println(c); }
运行结果: