当前位置:网站首页 > Java教程 > 正文

java scanner 教程



Java 的 Scanner 类是一个方便在控制台扫描用户输入的工具类,虽然它也可以扫描文件内容,但我们通常更喜欢它扮演前面的角色,因为扫描文件可以通过文件流来完成。

接下来,我们通过几个简单的示例讲一下 Scanner 类。

通常,我们会使用 Scanner 类来扫描控制台输入,尤其是对于初学 Java 的人来说,这样会非常的酷,因为终于可以拿到我们自己想要输入的数据了。

来看下面的示例:

运行后就可以在控制台交互了,对于新手来说,估计会觉得比较有趣。

其中 System.in 返回的是一个字节输入流 InputStream,和 System.out 刚好对应。

方法会扫描输入流中的字符,直到遇到行末尾的换行符 ,然后将该行的内容作为字符串返回,同时, 会将 Scanner 对象的位置移动到下一行的开头,以便下一次读取数据时从下一行的开头开始读取。

用于从输入流中读取下一个整数并返回,如果输入流中没有整数,或者不是整数,将抛出 InputMismatchException 异常。

除了以上两个常用的方法,Scanner 类中还有一些其他的方法:

  • :检查输入流是否还有下一个标记。
  • :检查输入流是否还有下一行。
  • :读取输入流中的下一个标记(使用默认的分隔符,通常是空格或换行符)。
  • :读取输入流中的下一个双精度浮点数。

来个 demo 吧。

当然了,Scanner 也是可以用来扫描文件的,方式也非常的简单,以下是代码示例:

在上面的示例中,我们首先创建了一个 File 对象,表示要扫描的文件。然后,我们使用 Scanner 类的构造方法来创建 Scanner 对象,将文件作为参数传递给构造方法。在 while 循环中,我们使用 方法来判断文件中是否有下一行,如果有,则使用 方法读取该行字符串,并使用 方法将其打印出来。最后,我们在程序结束前使用 方法关闭 Scanner 对象。

除了使用循环+nextLine,我们还可以使用 useDelimiter 方法设置文件结束符 来读取整个文件。

正则表达式中的 表示输入的结尾,也就是文件结束符。在 Scanner 类中,我们可以使用 作为分隔符,以便读取整个文件内容。

除了上面提到的扫描控制台输入流、文件,Scanner 还提供了另外四个以 find 开头的查找匹配项的方法:

来看示例:

在上面的示例中,我们首先创建了一个字符串 input,表示要查找的文本。然后,我们使用 Scanner 类的构造方法创建 Scanner 对象,并将 input 作为输入流传递给该对象。接着,我们使用 方法和 方法分别查找字符串中的单词 "study"。其中, 方法在当前行中查找匹配项,而 方法在指定的限制范围内查找匹配项。在本例中,我们将查找的范围限制为前 20 个字符。

需要注意的是, 方法和 方法都返回找到的匹配项。如果没有找到匹配项,则返回 null。此外, 方法和 方法都会忽略默认的分隔符,因此需要使用正则表达式来指定查找的模式。在本例中,我们使用了字符串 "study" 作为查找的模式。

当然我们也可以使用正则表达式,比如说我们要在下面的文件中查找 openjdk 这个关键字。

代码就可以这样写:

我们用正则表达式 pattern 来表示 这个关键字, 中的 表示任意字符,可以通过查找正则表达式去了解。

然后我们使用 while 循环来查找文件中所有的 ,其中 findWithinHorizon 方法的第二个参数如果为 0 则表示忽略边界,如果没找到,会返回 null。

由于文件中有两个 openjdk 关键字,所以输出结果如下所示:

总之,Scanner 类是一个功能强大的输入处理工具类,不仅可以扫描控制台的输入流,还可以扫描文件,并且提供了多种方法来读取不同类型的数据,比如 , , , 等。

除此之外,还可以通过 方法设置分隔符,通过 , 查找匹配项等。


GitHub 上标星 10000+ 的开源知识库《二哥的 Java 进阶之路》第一版 PDF 终于来了!包括Java基础语法、数组&字符串、OOP、集合框架、Java IO、异常处理、Java 新特性、网络编程、NIO、并发编程、JVM等等,共计 32 万余字,500+张手绘图,可以说是通俗易懂、风趣幽默……详情戳:太赞了,GitHub 上标星 10000+ 的 Java 教程

微信搜 沉默王二 或扫描下方二维码关注二哥的原创公众号沉默王二,回复 222 即可免费领取。

  • 上一篇: java卡教程入门
  • 下一篇: java招聘教程
  • 版权声明


    相关文章:

  • java卡教程入门2024-10-12 10:02:06
  • java爬虫入门教程2024-10-12 10:02:06
  • java教程.pdf2024-10-12 10:02:06
  • java430教程全集2024-10-12 10:02:06
  • 30种java教程2024-10-12 10:02:06
  • java招聘教程2024-10-12 10:02:06
  • java动态代理教程2024-10-12 10:02:06
  • java发动机使用教程2024-10-12 10:02:06
  • java教程视频完整版2024-10-12 10:02:06
  • java超时使用教程2024-10-12 10:02:06