自定义输入模板

转载自:(43条消息) OJ平台(牛客等)中Java的输入方法_lenfranky的博客-CSDN博客_牛客java输入

扩展:牛客网编程OJ的典型输入Java模板 - 程序员小宇 - 博客园 (cnblogs.com)

基本格式及所需的库
在Java5中引入了Scanner库,这个库在日常使用中是非常方便的,可以直接将输入按照格式读取,但是,在牛客上经过笔者的测试,效率要比BufferedReader差很多,因此,在做题时推荐还是用BufferedReader和InputStreamReader来使用。

在这些平台,一般要求主类名为Main,然后将方法写到main()方法中,因此,我们的类大概是类似如下的格式:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException{
        ......
    }
}

有一点要注意的是,由于在IO时所用的方法往往是有声明必检异常的,所以这里如果不想在代码中加入try-catch块的话,main()方法也要声明抛出’IOException`异常。

输入为一个字符串时

若输入为一个字符串,如:

abcd

相应的读取输入代码:

        // 创建一个BufferedReader对象
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 读取字符串
        String line = br.readLine();

        // 测试输入是否正确
        System.out.println(line);

若输入为多个数字

若输入为多个数字,如下:

1 2

这个例子中有两个数字,则代码为:

        // 创建一个BufferedReader对象
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 读取第一行数据
        String line = br.readLine();
        // 将字符串根据空格进行分隔
        String[] strings = line.trim().split(" ");
        // 分别将其中的每个数值读出
        int n = Integer.parseInt(strings[0]);
        int v = Integer.parseInt(strings[1]);

        // 测试输入是否正确
        System.out.println("n: " + n + "\tv: " + v);

若输入中有一个数组,且有数组的长度

一种常见的输入方式为,给出数行数据,其中一行为数组,而在前面某一行中,会有一个数据为其数组的位数。如:

7 6
1 2 3 4 5 6 7

其中第二行为一个数组,第一行的第一个数字表示第二行数组的长度,则读取输入的代码为:

        // 创建一个BufferedReader对象
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 读取第一行数据
        String line = br.readLine();
        // 将字符串根据空格进行分隔
        String[] strings = line.trim().split(" ");
        // 分别将其中的每个数值读出
        int n = Integer.parseInt(strings[0]);
        int v = Integer.parseInt(strings[1]);
        // 读取第二行数据
        line = br.readLine();
        strings = line.trim().split(" ");
        // 创建一个int型的数组用来储存第二行的多个数字
        int[] nums = new int[n];
        for (int i = 0; i < n; i ++) {
            nums[i] = Integer.parseInt(strings[i]);
        }

        // 测试输入是否正确
        for (int num: nums) {
            System.out.print(num + " ");
        }

————————————————
版权声明:本文为CSDN博主「LenFranky」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lenfranky/article/details/90757224

posted @ 2021-08-02 22:24  皮皮俊  阅读(111)  评论(0编辑  收藏  举报