ACM模式 输入输出处理

912 阅读1分钟
import java.util.*;

/**
 * @author yangshiwei
 * ACM模式 输入输出样例
 */
public class Main {

    public static void main(String[] args) {
        new Main().sln1();
    }

    // 1 输入n个元素的的数组

    /** 测试用例
     * 5
     * 1 2 3 4 5
     */
    public void sln1() {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] ans = new int[n];
        for (int i = 0; i < n; i++) {
            ans[i] = scanner.nextInt();
        }
        // 输出
        System.out.println(Arrays.toString(ans));
    }

    // 2 输入一个不定长度的数组

    /** 测试用例
     * 1 2 3 4 5 6 7
     */
    public void sln2() {
        Scanner scanner = new Scanner(System.in);
        String info = scanner.nextLine();
        // 这里也可能是逗号
        String[] ans = info.split("\\s+");
        // 转化为int
        int[] intAns = Arrays.stream(ans).mapToInt(Integer::parseInt).toArray();
        // 输出
        System.out.println(Arrays.toString(intAns));
    }


    // 输入一个n * m 的数组

    /** 测试用例
     * 3 4
     * 1 2 3 4
     * 2 2 3 4
     * 3 2 3 4
     */
    public void sln3() {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int[][] ans = new int[n][m];
        for (int i = 0; i < ans.length; i++) {
            for (int j = 0; j < ans[0].length; j++) {
                ans[i][j] = scanner.nextInt();
            }
        }
        // 输出
        for (int[] op : ans) {
            System.out.println(Arrays.toString(op));
        }
    }


    // 输入不定长度的 二维数组 ( 这里在元素输入结束后需要再一个回车结束 )
    /** 测试用例
     * 1 2 3 4
     * 2 2 3 4
     * 3 2 3 4
     * 4 2 3 4
     */
    public void sln4 (){
        Scanner scanner = new Scanner(System.in);
        List<int[]> ans = new ArrayList<>();
        while(scanner.hasNextLine()) {
            String tmp = scanner.nextLine();
            if ("".equals(tmp)) break;
            String[] split = tmp.split("\\s+");
            int[] ints = Arrays.stream(split).mapToInt(Integer::parseInt).toArray();
            ans.add(ints);
        }
        for (int[] op : ans) System.out.println(Arrays.toString(op));
    }
}