Scanner和BufferReader用法详记
2016-08-27 21:50
459 查看
首先,我们应该对Java中的Scanner类和BufferReader类有一个比较详细的认识,二者在方法的设置和显示上都有比较规律的设置,因此掌握好方法进行记忆会比较简单。 |
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
输入数据的类Scanner,位于java.util包中,Scanner的具体用法为Scanner input = new Scanner(System.in);通过 new创建一个Scanner对象,Scanner需要传入一个System.in作为参数,我们可以看作是Scanner通过其内部机制将 System.in包装起来而实现数据的读取工作的。Scanner对象通过一系列的input.nextxxx();方法来读取相应的基本类型的数据,通过input.hasNextxxx();方法来判断是否还有下一个数据。input.nextLine() 输入一行数据,一般会将你输入的数据当做字符串处理
需要注意的是,Scanner读取数据是按空格符,这其中包括空格键,Tab键,Enter键。只要遇到其中之一,Scanner的方法就会返回下一个输入 ,Scanner类默认使用的分隔符(delimiter)是空格可以调用Scanner类里的useDelimiter方法,设置它的分隔符,从而解决问题
关于BufferReader
BufferReader位于java.io包中,读取数据比较固定,这样格式也就相对来说比较单一,只要记住就这一读取数据的方法BufferReader br = new BufferReader(new InputStreamReader(System.in)); 这个BufferReader对象通过readLine();方法来读取数据,readLine()是按Enter回车来读取一行数据的,只要在回车键之前的都会被readLine();方法返回,然而,要使用BufferReader输入一些字符之外的类型的数据,就要相对比较麻烦,需要通过一些XXXX.parseXxx();来转换相应的数据类型,虽然,麻烦一些,但通过在一些OJ系统上的和Scanner作对比,BufferReader的效率要比Scanner高一倍,这个差距可想而知,读取的数据越多,效果就越明显。
下面是针对Scanner类的使用的一个小题目,也体现出其灵活的运用:
import java.util.Scanner; public class abcplus1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int a = input.nextInt(); int b = input.nextInt(); int c = input.nextInt(); if(a >= -40 && a <= 40 &&b >= -40 && b <= 40 &&c >= -40 && c <= 40) System.out.println(a+b+c); else return; } }
在读取数据方面以上这种方法比较繁琐,不过体现了.nextxxx可以连续读入符合条件的值。当需要的数据较多时可以采用循环的方式进行处理。
import java.util.Scanner; public class abcplus1 { public static void main(String[] args) { int sum = 0; Scanner input = new Scanner(System.in); //String inp = input.nextLine(); //char[] cchar = inp.toCharArray(); //int[] arr = new int[cchar.length]; for(int i = 0; i < 3; i++) { if(input.hasNextInt()) { int j = input.nextInt(); if(j >= -40 && j <= 40) sum += j; } else continue; } System.out.println(sum); } }
相关文章推荐
- Java输入流之BufferReader和Scanner的用法!
- Java输入流之BufferReader和Scanner的用法!
- Java输入流之BufferReader和Scanner的用法!
- BufferReader与Scanner的用法比较
- Java输入流之BufferReader和Scanner的用法!
- Scanner和BufferReader之区别
- java中的四大输入:System.in,Scanner,InputStreamReader,BufferesReader的用法与区别【改】
- BufferReader与BufferInputStream 区别及用法
- java Scanner 和BufferReader 结束符
- Scanner和BufferReader difference
- Scanner和BufferReader对象输入输出
- BufferReader和Scanner的使用
- Scanner和BufferReader之区别
- Scanner 与 BufferReader的选择
- Java学习笔记-Scanner和BufferedReader的区别和用法
- BufferReader和BufferWriter简单用法例子与结合实现复制文本文件简单例子
- Scanner和BufferedReader的区别和用法
- Scanner和BufferedReader的区别和用法
- Scanner、BufferReader读取文件,一个完整一个不完整
- BufferReader的用法