java.util.Scanner类的基本使用

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 11,963评论 0 9
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,941评论 0 2
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 3,529评论 0 1
  • /*【程序21】 * 作者 南枫题目:求1+2!+3!+...+20!的和 1. 程序分析:此程序只是把累加变成了...
    HUC南枫阅读 3,211评论 0 0
  • 一、引言 Oracle为Java提供了丰富的基础类库,Java 8 提供了4000多个基础类库,熟练掌握这些基础类...
    零点145阅读 3,471评论 0 0