本节针对某些国企银行类的笔试编程题,不是LeetCode风格的,而是需要处理输入输出的,对这些IO处理做总结。这类代码,需要自己import包名。自己定义主类和主函数。

1、读取多行,每行读取多个

1.1 题目描述

输入描述:

输入包括两个正整数a,b(1 <= a, b <= 1000),输入数据包括多组。

输出描述:

输出a+b的结果

输入例子1:

1 5 10 20

输出例子1:

6 30

1.2 代码

  1. import java.util.*;
  2. public class Main {
  3. public static void main (String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. while (sc.hasNext()) {
  6. int a = sc.nextInt();
  7. int b = sc.nextInt();
  8. System.out.println(a + b);
  9. }
  10. }
  11. }

2、第一行是数据组数,后面的是数据

2.1 题目描述

输入描述:

输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 1000)

输出描述:

输出a+b的结果

输入例子1:

2 1 5 10 20

输出例子1:

6 30

2.2 代码

import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int lineNum = sc.nextInt();
        for (int i = 0; i < lineNum; ++i) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(a + b);
        }
    }
}

3、输入多行,遇0结束

3.1 题目描述

输入描述:

输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入

输出描述:

输出a+b的结果

输入例子1:

1 5 10 20 0 0

输出例子1:

6 30

3.2 代码

import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        while (a != 0 && b != 0) {
            System.out.println(a + b);
            a = sc.nextInt();
            b = sc.nextInt();
        }
    }
}

4、每行第一个是这行的数据总数,遇0结束

4.1 题目描述

输入描述

输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。

输出描述

每组数据输出求和的结果

输入示例1:

4 1 2 3 4 5 1 2 3 4 5 0

输出示例1:

10 15

4.2 代码

import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        while (!sc.hasNext("0")) {
            int lineTotal = sc.nextInt();
            int sum = 0;
            for (int i = 0; i < lineTotal; ++i) {
                sum += sc.nextInt();
            }
            System.out.println(sum);
        }
    }
}

5、第一行是数据组数,每行第一个是这行的数据总数

5.1 题目描述

输入描述

输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。 接下来t行, 每行一组数据。 每行的第一个整数为整数的个数n(1 <= n <= 100)。 接下来n个正整数, 即需要求和的每个正整数。

输出描述

每组数据输出求和的结果

输入示例1:

2 4 1 2 3 4 5 1 2 3 4 5

输出示例2:

10 15

5.2 代码

import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int lineNum = sc.nextInt();
        for (int i = 0; i < lineNum; ++i) {
            int sum = 0;
            int lineTotal = sc.nextInt();
            for (int j = 0; j < lineTotal; ++j) {
                sum += sc.nextInt();
            }
            System.out.println(sum);
        }
    }
}

6、每一行一组数据,每一行第一个数据是该行数据总数

6.1 题目描述

输入描述

输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。

输出描述

每组数据输出求和的结果

输入示例1:

4 1 2 3 4 5 1 2 3 4 5

输出示例2:

10 15

6.2 代码

import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int lineTotal = sc.nextInt();
            int sum = 0;
            for (int i = 0; i < lineTotal; ++i) {
                sum += sc.nextInt();
            }
            System.out.println(sum);
        }
    }
}

7、每行一组数据,没有给出当前行包含多少元素

7.1 题目描述

输入描述

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

输出描述

每组数据输出求和的结果

输入示例1:

1 2 3 4 5 0 0 0 0 0

输出示例2:

6 9 0

7.2 代码

import java.util.*;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            int sum = 0;
            String[] arr = sc.nextLine().split(" ");
            for (String str: arr) {
                sum += Integer.valueOf(str);

            }
            System.out.println(sum);
        }
    }
}

参考

OJ在线编程常见输入输出练习