OJ平台(牛客等)中Java的输入方法_seableble的博客-优快云博客
在Java5中引入了Scanner
库,这个库在日常使用中是非常方便的,可以直接将输入按照格式读取,但是,在牛客上经过笔者的测试,效率要比BufferedReader
差很多,因此,在做题时推荐还是用BufferedReader
和InputStreamReader
来使用。
在这些平台,一般要求主类名为Main,然后将方法写到main()
方法中,因此,我们的类大概是类似如下的格式:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
......
}
}
输入为一个字符串时
abcd
// 创建一个BufferedReader对象
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 读取字符串
String line = br.readLine();
若输入为多个数字
1 2 3 4
// 创建一个BufferedReader对象
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 读取第一行数据
String line = br.readLine();
// 将字符串根据空格进行分隔
String[] strings = line.trim().split(" ");
// 分别将其中的每个数值读出
int n = Integer.parseInt(strings[0]);
int v = Integer.parseInt(strings[1]);
若输入中有一个数组,且有数组的长度
7 6
1 2 3 4 5 6 7
// 创建一个BufferedReader对象
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 读取第一行数据
String line = br.readLine();
// 将字符串根据空格进行分隔
String[] strings = line.trim().split(" ");
// 分别将其中的每个数值读出
int n = Integer.parseInt(strings[0]);
int v = Integer.parseInt(strings[1]);
// 读取第二行数据
line = br.readLine();
strings = line.trim().split(" ");
// 创建一个int型的数组用来储存第二行的多个数字
int[] nums = new int[n];
for (int i = 0; i < n; i ++) {
nums[i] = Integer.parseInt(strings[i]);
}
// 测试输入是否正确
for (int num: nums) {
System.out.print(num + " ");
}
一行组数一行数字一行字符串(多组通常是一组一组来处理,直接在循环里调用函数)
1 //T
5 //N
01102
6 //M
MFMMFF
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(reader.readLine());
for (int i = 0; i < T; i++) {
int N = Integer.parseInt(reader.readLine());
String tables = reader.readLine();
int M = Integer.parseInt(reader.readLine());
String enters = reader.readLine();
//输出
int[] res = solve(tables, enters);
for (int r : res) {
writer.write(Integer.toString(r));
writer.newLine();
}
}
writer.flush();