从三月份找实习开始,我才算是真正意识到自己有多菜。经历了数不清多少次的笔试,算法方面菜鸡也就算了,没想到几乎每次考试都会在输入方面卡壳半个小时左右。这次7.28号拼多多“学霸批”的笔试,也是在输入方面浪费了大量时间。为此,在这里总结一下笔试可能会用到的输入方法,吃一堑长一智。本文持续更新。
类型一:多行输入,每行为一个数组,数字之间用空格隔开
1 | Scanner in = new Scanner(System.in); |
类型二:第一行一个整数,第二行一个数组
此类型的输入不区分各行,只判定第一个整数为数组大小,之后的整数为数组数据即可。也就是只按整型输入读取。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 /**
* 输入一个整数(数组大小),一个数组(空格或回车隔开)
* 2
* 1 3
* @author YJC
*
*/
Scanner in = new Scanner(System.in);
while(in.hasNext()) {
int m = in.nextInt();//读取第一个整数,即数组大小
int[] numbers = new int[m];//新建数组
for(int i=0;i<m;i++) {
numbers[i] = in.nextInt();//按整型输入读取
}
System.out.println(Arrays.toString(numbers));
}
类型三:输入多行整数用逗号隔开
输入
1
20,3,55
代码如下
1 | Scanner in = new Scanner(System.in); |