关于Scanner键盘接收方法中scan.nextLine()和scan.nextInt()的区别
2008-10-06 10:59
801 查看
Java code
以下是我的理解是,哪里不对还请大家指正:
String s = sc.nextLine();这里读到的是一个空字符串。
因为你在输入完第二个数字以后,按了一下回车。
假设你第二个数字输入的是:5(加一个回车)
则程序实际收到的是:5/r/n
nextInt() 扫描到了5
nextLine();继续扫描,这个方法会返回当前行的剩余部分,(一直到遇到行分隔符为止,而且不包括行分隔符)
因为5的后面是一个行分隔符/r ,所以nextLine() 就只扫到了一个空的字符串。
Java code
这个代码可以运行成功,是因为sc.nextLine() 会将读取到的行分隔符自动去掉。
所以你在输入第二个数字的时候:5(加一个回车)
输入的是5/r/n
不过程序实际扫描到的是5
当再执行这句代码的时候:
Java code
因为行里面已经没有数据了,所以程序会阻塞,一直到你再输入数据为止。
public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); String s = sc.nextLine(); System.out.print("a: " + a + " b: " + b + " s: " + s); } }
以下是我的理解是,哪里不对还请大家指正:
String s = sc.nextLine();这里读到的是一个空字符串。
因为你在输入完第二个数字以后,按了一下回车。
假设你第二个数字输入的是:5(加一个回车)
则程序实际收到的是:5/r/n
nextInt() 扫描到了5
nextLine();继续扫描,这个方法会返回当前行的剩余部分,(一直到遇到行分隔符为止,而且不包括行分隔符)
因为5的后面是一个行分隔符/r ,所以nextLine() 就只扫到了一个空的字符串。
Java code
public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = Integer.parseInt(sc.nextLine()); int b = Integer.parseInt(sc.nextLine()); String s = sc.nextLine(); System.out.print("a: " + a + " b: " + b + " s: " + s); } }
这个代码可以运行成功,是因为sc.nextLine() 会将读取到的行分隔符自动去掉。
所以你在输入第二个数字的时候:5(加一个回车)
输入的是5/r/n
不过程序实际扫描到的是5
当再执行这句代码的时候:
Java code
String s = sc.nextLine();
因为行里面已经没有数据了,所以程序会阻塞,一直到你再输入数据为止。
相关文章推荐
- 使用next()和nextLine()方法接收从键盘输入字符串型数据区别
- Java基础之Scanner类中next()与nextLine()方法的区别
- java scanner next nextline nextint区别
- 关于Scanner对象的nextLine()和next()的使用
- Scanner中nextLine()方法和next()方法的区别
- java中Scanner的nextLine()和next()的区别
- java Scanner中的 next() 方法和 nextLine() 方法的区别
- 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法
- 键盘录入 Scanner类 nextInt() nextInt() nextLine() 有什么区别
- 关于昨天Scanner调用sc.nextInt()异常try后不能二次输入问题的详细解答
- Scanner中next()和nextLine()方法的区别
- 关于Random(47)与randon.nextInt(100)的区别
- Scanner中的next()与nextLine()的区别
- scanner.next()与scanner.nextLine()的区别
- java Scanner nextLine next 连用的区别
- Scanner对象的next()与nextLine()区别(转)
- Scanner对象的next()与nextLine()区别
- 关于nextLine()和next()的使用,区别
- java中Scanner和Integer.paseInt(sc.nextLine())转换
- Java中Scanner的next()与nextLine()的区别