Java Scanner类在OJ中的简单使用

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
输入: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 set = new HashSet();
	    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
    } 

   一般为一个完整的测试用例。



你可能感兴趣的:(Java)