ACM(OJ)模式下对于各种输入输出情况的总结(JAVA)
import java.util.Arrays;
import java.util.Scanner;
public class InOutTest {
public static void main(String[] args){
// 1. 多组空格分割的两个整数
// eg:每行输入两个数求和
// 1 5
// 10 20
// Scanner in = new Scanner();
// while (()){ // while处理多个case
// int a = ();
// int b = ();
// (a + b);
// }
// 2. 第一行组数接空格分割的两个正整数 (行数限制)
// eg: 输出a+b的结果
// 2
// 1 5
// 10 20
// Scanner in = new Scanner();
// int num = ();
// for (int i =0; i < num; i++){
// int a = ();
// int b = ();
// (a + b);
// }
// 3. 空行分割的两个正整数,0 0 结束 (结束符限制)
// eg: 输出a+b的结果
// 1 5
// 10 20
// 0 0
// Scanner in = new Scanner();
// while (()){
// int a = ();
// int b = ();
// if(a == 0 && b == 0) break;
// (a + b);
// }
// 4. 每行第一个为个数后带空格分割整数,0结束 (结束符限制,每行有个数限制)
// 输入数据包括多组。
// 每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
// 接下来n个正整数,即需要求和的每个正整数。
// eg: 每组数据输出求和的结果
// 4 1 2 3 4
// 5 1 2 3 4 5
// 0
// Scanner in = new Scanner();
// while (()){
// int n = ();
// if (n == 0) break;
// int sum = 0;
// for (int i = 0; i < n; i++){
// sum += ();
// }
// (sum);
// }
// 5. 第一行组数接第一个个数接空格分开的整数 (行数限制,每行有个数限制)
// 输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
// 接下来t行, 每行一组数据。
// 每行的第一个整数为整数的个数n(1 <= n <= 100)。
// 接下来n个正整数, 即需要求和的每个正整数。
// eg: 每组数据输出求和的结果
// 2
// 4 1 2 3 4
// 5 1 2 3 4 5
// Scanner in = new Scanner();
// int num = ();
// for (int i = 0; i < num; i++){
// int n = ();
// int sum = 0;
// for(int j = 0; j < n; j++){
// sum += ();
// }
// (sum);
// }
// 6. 每行第一个为个数后带空格分割整数 (无结束限制,每行有个数限制)
// 输入数据有多组, 每行表示一组输入数据。
// 每行的第一个整数为整数的个数n(1 <= n <= 100)。
// 接下来n个正整数, 即需要求和的每个正整数。
// eg: 每组数据输出求和的结果
// 4 1 2 3 4
// 5 1 2 3 4 5
// Scanner in = new Scanner();
// while (()){
// int num = ();
// int sum = 0;
// for(int i = 0; i < num; i++){
// sum += ();
// }
// (sum);
// }
// 7. 多组空格分隔的正整数 (无结束限制,每行无个数限制,需要当作字符串处理)
// 输入数据有多组, 每行表示一组输入数据。
// 每行不定有n个整数,空格隔开。(1 <= n <= 100)。
// eg: 每组数据输出求和的结果
// 1 2 3
// 4 5
// 0 0 0 0 0 0
// Scanner in = new Scanner();
// while (()){ // 直接读一行字符串
// String[] s = ().split(" ");
// int sum = 0;
// for(int i = 0; i < ; i++){
// sum += (s[i]);
// }
// (sum);
// }
// 扩展:第一行组数接空格分开的多个整数 (有行数限制,每行无个数限制,需要当作字符串处理)
// eg: 每组数据输出求和的结果
// 3
// 1 2 3
// 4 5
// 0 0 0 0 0
Scanner in = new Scanner(System.in);
int num = in.nextInt();
in.nextLine(); // 跳过行数所在行
for (int i = 0; i < num; i++ ){
String[] s = in.nextLine().split(" ");
int sum = 0;
for(int j = 0; j < s.length; j++){
sum += Integer.parseInt(s[j]);
}
System.out.println(sum);
}
// 8. 第一行个数第二行字符串
// 输入有两行,第一行n
// 第二行是n个空格隔开的字符串
// eg: 输出一行排序后的字符串,空格隔开,无结尾空格
// 5
// c d a bb e
// Scanner in = new Scanner();
// int num = ();
// ();
// while (()){
// String[] s = ().split(" ");
// (s);
// for (int i = 0; i < ; i++){
// (s[i] + " ");
// }
// }
// 9. 多行空格分开的字符串
// 多个测试用例,每个测试用例一行。
// 每行通过空格隔开,有n个字符,n<100
// eg: 对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开
// a c bb
// f dddd
// nowcoder
// Scanner in = new Scanner();
// while (()){
// String[] s = ().split(" ");
// (s);
// for (String c:s){
// (c + " ");
// }
// ();
// }
// 10. 多行逗号分开的字符串 (逗号和空格的区别就是最后一个字符输完的时候","还是" " )
// 多个测试用例,每个测试用例一行。
// 每行通过,隔开,有n个字符,n<100
// eg: 对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格
// a,c,bb
// f,dddd
// nowcoder
// Scanner in = new Scanner();
// while (()) {
// String[] s = ().split(",");
// (s);
// int l = ;
// for (int i = 0; i < l - 1; i++) {
// (s[i] + ",");
// }
// (s[l-1]);
// }
}
}