java零基础入门-Scanner类
创始人
2024-04-24 09:34:28
0

目录

1.概念

2.常用api

3.next()方法

4.nextLine()方法

5.next()与nextLine()区别

6.实例


1.概念

  针对java5版本诞生,在jdk之前版本这次的版本是添加了java.util.Scanner类;其类是一个用于扫描输入文本的工具集。它不仅提供了可结合正则表达式和从输入流中检索某些特定数据项的方法,也提供了对任意字符串和基本类型的数据进行分析。你可以使用Scanner类,针对任意要处理的文本内容编写自定义的语法分析器,替你对数据进行分析是否符合你的预定内容格式。

       总而言之,有该类的存在,还是非常的方便好用。它就是一个用户获取键盘输入的工具类,也可以从文件、字符串、输入流等中解析出基本类型等值。

下面是创建Scanner类的基本语法:

Scanner scanner = new Scanner(System.in);

2.常用api

       如下是我实例了一个Scanner对象,通过对象点的形式,你可以看到它提供了这么多方法,那么我就对其中比较常用的api进行一下介绍吧。

  • String next():查找并返回来自扫描器的下一个完整标记。
  • String next(String pattern):如果下一个标记与指定的pattern指定模式匹配,则返回下一个标记。
  • int nextInt():将输入信息的下一个标记扫描为一个int值。
  • String nextLine():此扫描器执行当前行,并返回跳过输入信息。
  • long nextLong():将输入信息的下一个标记扫描为一个long值。
  • short nextShort():将输入信息的下一个标记扫描为一个short值。
  • float nextFloat():将输入信息的下一个标记扫描为一个float值。
  • double nextDouble():将输入信息的下一个标记扫描为一个double值。

    然后其中还有nextXxx()与hasNextXxx() 方法,二者的作用就是nextXxx()是为了获取下一个输入,而hasNextXxx() 方法是判断是否有下一个输入项,其中Xxx可以是int、long、double等基础类型数据,若只判断是否包含下一个字符串,则你直接使用hasNext()方法即可。

3.next()方法

       接着我要重点来讲解一下next()与nextLine()方法,具有很好的参考价值。其中我先讲解下一下next方法,next()方法查找并返回来自此扫描器的下一个完整标记。切记,只读取输入直到空格。这点我会用示例给大家演示。

具体示例如下:

具体示例如下:

    public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个字符串");String str = scanner.next();System.out.println("您输入的字符串为:" + str);}

请输入一个字符串
adad dada dsada2
您输入的字符串为:adad

  总而言之,示例2你们是看到了其空格所带来的问题,它不能读取由两个空格隔开的字符,next方法只读取空格之前的数据,并且光标指向本行。

4.nextLine()方法

       上方讲解完了next方法,接着就我就给大家讲一下其nextLine()方法,其方法是返回输入源中下一行的所有内容。

具体示例如下:

    public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个字符串");String str = scanner.nextLine();System.out.println("您输入的字符串为:" + str);}

请输入一个字符串
abcd 123 hhhh
您输入的字符串为:abcd 123 hhhh

       很明显, 对于next方法而言,nextLine方法是能完整读取到改行的所有内容,包括空格等,它是直接读到行尾才结束,然后回车,光标是直接定位到下一行。

5.next()与nextLine()区别

  • 对于next()方法:一定要读取到有效字符才可以结束输入,只读取空格前的内容,空格之后的内容不会被读取上,只有输入有效字符后才将后边输入的空格作为分隔符或者结束符。总之就是它不能得到有带空格的字符串。
  • 对于nextLine()方法:以回车键作为结束符,可以获取到结束前所输入的一切字符串,包括空格、特殊字符等。

6.实例

       给你们模拟一个场景,如何如何监听用户输入为日期格式的有效数据?对于这么个小的单元测试,我觉得你们大家肯定都能轻松写上来,唯独可能就是需要校验日期格式,因为如何匹配,给大家个参考,可以使用这个方法,hasNext(String pattern),其中pattern参数支持传入一个正则表达式,其中对于yyyy-MM-dd的日期格式正则写法为:[ ^\\d{4}-\\d{2}-\\d{2}$ ]。

    public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个日期格式为:yyyy-MM-dd的字符串:");//判读输入格式是否为指定的日期格式if (scanner.hasNext("^\\d{4}-\\d{2}-\\d{2}$")) {System.out.println("输入的日期为:"+scanner.next());}else {System.out.println("输入的日期格式错误!");}}

接下来我们来测试验证一下:

请输入一个日期格式为:yyyy-MM-dd的字符串:
1
输入的日期格式错误!

请输入一个日期格式为:yyyy-MM-dd的字符串:
2022-06-29
输入的日期为:2022-06-29

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...