针对OJ的JAVA 输入(PAT,牛客网,杭电 etc)

Java的输入输出主要是使用Scanner 类来实现的,这包括从键盘读取输入,从文件读取输入,向屏幕输出和写入文件。另外,为了提高速度,我们还会使用带缓冲区的读和写。

I. java.util.Scanner

1. 读取键盘输入:

首先必须引入这个包:import java.util.Scanner

然后使用 Scanner sc = new Scanner(System.in) 生成Scanner对象。System.in 在这里代指标准输入流,默认定义为键盘输入。也可以传入一个字符串,作为需要Scanner处理的对象。

import java.io.IOException;
import java.util.Scanner;

public class ScannerExample{
    public static void main(String[] args) throws IOException{
        Scanner sc = new Scanner(System.in);  // 声称Scanner对象
        System.out.println("Enter username");

        String userName = sc.nextLine();  // 读取整行作为输入,以回车键作为结束符
        System.out.println("Username is: " + userName);  // 输出读取的输入
    }
}

在OJ中,常指定主类为public Main 形式,如PTA, 牛客网等:你需要把上面的"public class ScannerExample" 换为 "public class Main"。另外, OJ还有固定的几种输入,比如

a >  多行输入,每行是一个数字(整数或者浮点数):

Input 输入数据有多组,每组占一行,由一个整数组成。
       Sample Input
       56
       67
      100
      123

import java.io.IOException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) { //判断是否结束
            int score = sc.nextInt();
            System.out.println(score);
        }

    }
}

b> 多行输入,每行是不定数个给定类型的数字

示例: https://ac.nowcoder.com/acm/contest/320/G

输入数据有多组, 每行表示一组输入数据。每行不定有n个整数,空格隔开。(1 <= n <= 100)。

1 2 3

4 5

0 0 0 0 0

因为每行数字个数是不定的,所以只能使用while循环。我们可以先用Scanner读取输入的一行,然后再用另一个Scanner 把每一行分解到每行数字。

import java.io.IOException;
import java.util.Scanner;

public class Main {
   public static void main(String[] args) throws IOException {
        int sum;
        Scanner sc = new Scanner(System.in);

        while (sc.hasNextLine()){
            sum = 0;
            String Line = 
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值