1. 输入规定参数个数n,参数按照一行输入n个元素。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
// 一个while就是一个测试用例
while(in.hasNext()){
int n = in.nextInt(); // 该测试用例后续接收的参数个数
long[] array = new long[n];
for(int i=0; i<n; i++){
array[i] = in.nextLong();// 取下一个元素转换成long类型
}
System.out.println(array.length);
}
}
}
输入:3
4 5 6
输出:3
2. 输入规定参数行数n,每行中有不确定个元素,参数是n行输入。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n = in.nextInt();
/* nextLine()是扫描器执行当前行,并返回跳过的输入信息,特别需要注意!!!
如果没有该行,则执行第一个in.nextLine()命令时的返回值是int n = in.nextInt()的值*/
in.nextLine();
HashSet<String> set = new HashSet<String>();
for (int i = 0; i < n; i++) {
String line =
in.nextLine();
String[] arr = line.split(" ");
for (int j = 0; j < arr.length; j++) {
set.add(arr[j]);
}
}
System.out.println("sum:" + set.size());
}
}
输入:3
a b c
d e f
a b c
输出:6
3.结论:
(1) 正常情况下,需要提供输入的参数个数或行数(n)的信息;
(2) in.hasNext():如果此扫描器的输入中有另一个标记,则返回 true。(是否有一个标记)
in.next:查找并返回来自此扫描器的下一个完整标记。(返回下一个标记)
in.hasNextInt():此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 int 值,则返回 true。(下一个标记是否为int类型)
in.nextInt():将输入信息的下一个标记扫描为一个 int。(将下一个标记返回成int类型)
in.hasNextLine():如果在此扫描器的输入中存在另一行,则返回 true。(是否存在下一行标记)
in.nextLine():此扫描器执行当前行,并返回跳过的输入信息。(返回当前行信息,与其他的不同,特别注意!!!)
(3) while (in.hasNext()) {
// code
}
一般为一个完整的测试用例。