快读解决问题:读取数据较慢的情况,是基于算法的一种优化。
基础代码:
package kuaidu;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
//System.in 读取的字节流InputStreamReader字节流->字符流转换的一个桥梁
//BufferedReader类从字符输入流中带缓存功能的读取字符,readLine()按行读取字符串
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
}
}
题目举例:计算两个整数的和
输入:输入两个整数A和B,中间用空格隔开。
输出:对于每一对输入整数A和B,在新的一行中输出A和B的总和。
样例输入:
37 21
250 271
657 657
样例输出:
58
521
1314
利用快读的解题代码:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
//System.in 读取的字节流InputStreamReader字节流->字符流转换的一个桥梁
//BufferedReader类从字符输入流中带缓存功能的读取字符,readLine()按行读取字符串
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line="";
try {
while((line=in.readLine())!=null){//只要还有行就继续读取,每次读一行放到line字符串中
String[] s=line.split(" +");//分割;一个或者多个空格,正则表达式语法
int a=Integer.parseInt(s[0]);//把字符串作为有符号的十进制整数进行剖析
int b=Integer.parseInt(s[1]);
System.out.println(a+b);
}
}catch (IOException e) {
e.printStackTrace();
}
}
}