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<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
    } 

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



使用JavaOJ判断一个数是否为质数,可以参考以下代码: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); boolean isPrime = true; if (x <= 1) { isPrime = false; } for (int i = 2; i <= Math.sqrt(x); i++) { if (x % i == 0) { isPrime = false; break; } } if (isPrime) { System.out.println("This is a prime."); } else { System.out.println("This is not a prime."); } } } 这段代码会从键盘上输入一个正整数x,然后判断x是否为质数。如果x是质数,则输出"This is a prime.",否则输出"This is not a prime."。请注意,这段代码与引用和引用的代码非常相似,但有一些细微的差别。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Java语法练习SDUTOJ判断素数(循环结构)](https://blog.csdn.net/Cherishlife_/article/details/85223731)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ZZULIOJ 1057: 素数判定,Java](https://blog.csdn.net/qq_52792570/article/details/119005501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值