栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java刷题中Scanner和BufferedReader的选择

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java刷题中Scanner和BufferedReader的选择

在java中,我们通常采用一个非常方便的输入数据的类Scanner,位于java.util包中,这个Scanner的具体用法为:

java Scanner in = new Scanner(System.in);

我们在平时刷题时经常会遇到有关他的两个问题

  1. Scanner对象通过一系列的in.nextXxx();方法来读取相应的基本类型的数据,通过in.hasNextXxx();方法来判断是否还有下一个数据。然而,Scanner读取数据是按空格符,这其中包括空格键,Tab键,Enter键。只要遇到其中之一,Scanner的方法就会返回下一个输入。

    scanner.hasNext()、 scanner.Next(),截止至空格
    scanner.hasNextLine(),scanner.NextLine()截止至换行符,不会在空格停止

    只有输入字符串组时,才使用nextline(),而且如果跟在next()后面使用的话,要使用两个。(第一个会读取空字符串) 输入数组时,不要使用nextline()了,不然转化会很麻烦。使用for+next逐一读取

  2. 当我们刷题超时的时候,我们可以使用更高效的BufferReader。

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in))

    我们便可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串。

    然而,要使用BufferReader输入一些字符之外的类型的数据,就要相对比较麻烦,需要通过一些XXXX.parseXxx();来转换相应的数据类型,(int类型的用Integer.parseInt(需要转换的字符串))虽然,麻烦一些,但通过在一些OJ系统上的和Scanner作对比,BufferReader的效率要比Scanner高一倍,这个差距可想而知,读取的数据越多,效果就越明显。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396665.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号