java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
下面是创建 Scanner 对象的基本语法:
Scanner scanner=newScanner(System.in);
接下来我们演示一个最简单的字符串输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串:
//创建Scanner对象Scanner scanner=newScanner(System.in);System.out.print("使用next()方法接收用户的输入:");String str=scanner.next();System.out.println("用户输入的字符串为:"+str);//关闭Scanner对象scanner.close();
输出结果:
输入的三个字符串神仙、妖怪、谢谢 使用空格分隔,我们发现只输出了第一个词:神仙
下面使用nextLine()方法试试:
//创建Scanner对象Scanner scanner=newScanner(System.in);System.out.println("使用nextLine()方法接收用户的输入:");String str=scanner.nextLine();System.out.println("用户输入的字符串为:"+str);//关闭Scanner对象scanner.close();
输出结果变成了:
下面简单总结下next() 与 nextLine() 区别
next():
1、如果用户只输入一个回车,程序会等待继续输入,要读取到有效字符后才可以结束输入;
2、next()方法会自动去除有效字符前的空白(空白符/回车符等)
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
Scanner scanner=newScanner(System.in);//接收从键盘输入的数据:intintNum=0;floatfloatNum=0.0f;System.out.print("接收用户输入的整数:");if(scanner.hasNextInt()){// 判断输入的是否是整数intNum=scanner.nextInt();// 接收整数System.out.println("用户输入的整数是:"+intNum);}else{// 输入错误的信息System.out.println("输入的不是整数!");}System.out.print("接收用户输入的小数:");if(scanner.hasNextFloat()){// 判断输入的是否是小数floatNum=scanner.nextFloat();// 接收小数System.out.println("用户输入的小数是:"+floatNum);}else{// 输入错误的信息System.out.println("输入的不是小数!");}scanner.close();
如果配上while循环,还可以实现循环验证直到输入正确的功能:
Scanner input=newScanner(System.in);intnum;System.out.println("请输入一个整型数字:");while(!input.hasNextInt()){System.out.println("输入的不是整型,请重新输入:");//hasNextInt判断不是整型后,缓存中还是存在用户输入的内容//如果再次使用hasNext..判断,仍然会得出不是整型的结果//所以在这里单独使用input.next(),以便将缓存清除掉input.next();}num=input.nextInt();System.out.println("输入的整型数字是:"+num);
老九学堂出品,转载请私信哦
对于文章内容有不理解的可以添加老九君个人QQ:614940318,请备注来自
老九学堂免费C、C++、Java课程地址:
https://study.163.com/courses-search?keyword=%E8%80%81%E4%B9%9D%E5%AD%A6%E5%A0%82