因为踩过坑,所以特别整理了一下,发现其实不少小伙伴同样都是这样,特别简单小结一下,java网上笔试的时候OJ的一些要求的实例
1 单行输入
// 本题为考试单行多行输入输出规范示例,无需提交,不计分。
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNextInt()) {// 注意,如果输入是多个测试用例,请通过while循环处理多个测试用例int a = in.nextInt();int b = in.nextInt();System.out.println(a + b);}}
1.oj的java输入hasNext和hasNextLine区别
2 多行输入
例子1
// 本题为考试多行输入输出规范示例,无需提交,不计分。
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int ans = 0, x;for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){x = sc.nextInt();ans += x;}} System.out.println(ans);}
}
例子2
有个题输入的是两行数组和一个整数(整数在最后),但是没给每一行数组元素个数,
建议用java😂,nextLine()
整行读取再切分
publicstaticvoidmain(String[] args) {Scanner sc = newScanner(System.in);String str = sc.nextLine().toString();int[] dis = getIntArr(str);str = sc.nextLine().toString();int[] eng = getIntArr(str);int maxDis = sc.nextInt();}
static int[] getIntArr(String str){String[] arr = str.split(" ");int[] b = new int[arr.length];for(int j = 0; j<b.length;j++) {b[j] = Integer.parseInt(arr[j]);}return b;
}
例子3
//输入描述:
//输入包括2行:
//第一行为整数n(1 <= n <= 50),即抹除一个数之后剩下的数字个数
//第二行为n个整数num[i] (1 <= num[i] <= 1000000000)
import java.util.*;
public class Next {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int N=sc.nextInt();int[] num = new int[N];for (int i = 0; i < N; i++) {num[i] = sc.nextInt();}//System.out.println("hallo");}
}
import java.util.*;
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();char[] arr = str.toCharArray();}
}
JAVA中的char类型(八大基本数据类型之一)
例子4
输入描述:
输入包括n+1行:
第一行为单词个数n(1 ≤ n ≤ 50)
接下来的n行,每行一个单词word[i],长度length(1 ≤ length ≤ 50)。由小写字母构成
输出描述:
输出循环单词的种数
输入例子:
5
picture
turepic
icturep
word
ordw输出例子:
2
package string.test;
import java.util.Scanner;
public class Demo1 {private int N;private String[] arr;private int count;public static void main(String[] args) {Demo1 demo = new Demo1();Scanner sc = new Scanner(System.in);demo.N = sc.nextInt();demo.arr = new String[demo.N];for (int i = 0; i < demo.N; i++) {String str = sc.next();demo.solve(str);}System.out.println(demo.count);for (int i = 0; i < demo.count; i++) {System.out.println(demo.arr[i]);}sc.close();}private void solve(String str) {if (count == 0) {arr[0] = str + str;count++;return;}boolean flag = false;int num = count;for (int i = 0; i < num; i++) {//如果包含该单词,吧flag设置成ture,循环结束要记得把flag重新设置成falseif (judge(arr[i], str)) {flag = true;break;}}if (flag != true) {arr[count++] = str + str;}flag = false;}/** 如果str1包含str2.则返回true*/private boolean judge(String str1, String str2) {if (str1.length() == str2.length())return false;//这里必须要验证str2是否为str1的一半,否则会无法通过if (str1.contains(str2) && str1.length() == str2.length() * 2)return true;return false;}
}
————————————————
参考文章:
1.JS和java在牛客编程题上输入输出的总结
2.【牛客机试】标准输入输出格式
3.牛客网输入输出(Java)总结