Scanner和bufferreader读取控制台字符的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scanner和bufferreader读取控制台字符的区别相关的知识,希望对你有一定的参考价值。
从开始学习Java就用了scanner,因为比较简单每当遇到空格键或者换行键则读取下一个字符,一般用法
while(input.hasNextInt()){
int n = input.nextInt();
int t = input.nextInt();
int c = input.nextInt();
int[] a = new int[n];
for(int i = 0;i < n;i++){
a[i]=input.nextInt();
}
这样就可以读取若干行以空格键或者换行键输入,但是今天做一个在线编程时发现bufferreader比scanner快,虽然比scanner占用内存多一些
bufferreader的输入只能使用readline()的方式读取一行文本,如果想将BufferedReader .readLine()的文本(默认是字符串类型)转换成其他类型的话,需要调用相应的方法(比如说想换成int类型的话,调用Integer.parseInt(BufferedReader .readLine()方法去转换格式))
BufferedReader br =
new
BufferedReader(
new
InputStreamReader(System.in));
String str;
while
((str=br.readLine())!=
null
){
String[] s = str.trim().split(
" "
);
int
n = Integer.parseInt(s[
0
]);
int
t = Integer.parseInt(s[
1
]);
int
c = Integer.parseInt(s[
2
]);
int
[] value =
new
int
[n];
if
((str=br.readLine())!=
null
){
String[] s2 = str.trim().split(
" "
);
for
(
int
i =
0
;i<n;i++){
value[i] = Integer.parseInt(s2[i]);
}
}
以上是关于Scanner和bufferreader读取控制台字符的区别的主要内容,如果未能解决你的问题,请参考以下文章
BufferReader buf_reader=new BuffReader(new InputStreamRead()System.in);请问这个Java是啥意思啊 3Q