转载自:(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 + " v: " + 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