java中输入函数next的用法
2018-09-28 本文已影响0人
暑水
1·用法
获取控制台输入:
Scanner in = new Scanner(System.in);
输入整数:
int a = in.nextInt();
或者
double a = in.nextDouble;
输入字符串:
String str = in.next();
或者
String str = in.nextLine();
2·区别
next()、nextInt()等和nextLine()的区别:
next()、nextInt()等:
这些方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格,Tab,Enter)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。
而且!!焦点不会移动到下一行,仍然处在这一行上。
nextLine():
可以扫描到一行内容并作为一个字符串而被获取到。(读取一行,会读取空格,只认enter)
当使用nextLine()方法时会读取该行从前到的所有的内容,包括空格,然后把焦点移动到下一行的开头。
nextInt()与nextLine()方法连用时问题(发现输入总是少一行):
问题分析:
nextLine()会把nextInt(),next(),nextDouble(),nextFloat()的结束换行符作为字符串读入,进而不需要从键盘输入字符串nextLine便已经转向了下一条语句执行。
解决办法:
在每一个nextInt(),next(),nextDouble(),nextFloat()后都加一个nextLine()语句,将被next()去掉的Enter过滤掉。