Java中用Scanner扫描控制台输入时的一个小问题
package com.hxl; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数和一个字符串:"); int aa = sc.nextInt(); String ss = sc.nextLine(); System.out.println("您输入的整數是:" + aa + "您输入的字符串是:" + ss); } }
【问题】此时控制台在输入第一个整数回车后,随即便不再接受输入。。
修改后的代码:
package com.hxl; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数和一个字符串:"); int aa = sc.nextInt(); String ss = sc.nextLine(); String ss1 = sc.nextLine(); System.out.println("您输入的整數是:" + aa + "您输入的字符串是:" + ss1); } }
【解释】Windows中回车的转义字符为\r\n,Scanner在扫描的时候碰到了它遇到的一行完整字符串后就会读出来,程序就往后走了。。。
【其他方法】可以把所有数据都用字符串来接收,然后再进行相应的转换。