笔试题的输入

单行输入数组不限长度以及限制输入个数

import java.util.Scanner;

public class 输入一个数组 {

public static void main(String[] args) {
    //    第一种方法:(不限制输入数组的长度)
    System.out.println("请输入几个数并用逗号隔开:");
    Scanner sc = new Scanner(System.in);
    String str = sc.next().toString();
    String[] arr  = str.split(",");
    int[] b = new int[arr.length];
    for(int j = 0; j<b.length;j++) {
        b[j] = Integer.parseInt(arr[j]);
        System.out.println(b[j]+" ");
    }


//    第二种方法:(限制输入的个数)

    System.out.println("请输入三个数:");
    Scanner in = new Scanner(System.in);
    int[] b=new int[3];
    for(int i=0;i<b.length;i++){
        b[i]=in.nextInt();
    }


//(顺便说明一下Scanner类中next()与nextLine()方法的区别:
//next()与nextLine()区别很明确,next() 方法遇见第一个有效字符
// (不是空格和换行符)时,开始扫描,当遇见第一个分隔符
//或结束符(空格或换行符)时,
//结束扫描,获取扫描到的内容,也就是说使用next()方法
//获得的是不含空格和换行符的单个字符串。
//而使用nextLine()时,则可以扫描到一行内
//容并作为一个字符串而被获取到。)
//        ————————————————

}
}

import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        ArrayList<ArrayList<Integer>> matrix = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        int row = 0;
        int col = 0;
        int res = 0;
        int cnt = 0;
        if(s.endsWith(",")) {
            String numarray[] = s.trim().split(",|\\[|\\]");
            col = numarray.length - 2;
            ArrayList<Integer> vec = new ArrayList<>();
            for(int i = 2; i < 2 + col; i++) {
                vec.add(Integer.parseInt(numarray[i]));
            }
            matrix.add(vec);
        } else if(s.endsWith("]]")) {//matrix 只有一行
            String numarray[] = s.trim().split(",|\\[|\\]");
            col = numarray.length;
            for(int i = 0; i < col; i++) {
                if(numarray[i].equals("0")) {
                    res = Math.max(res, cnt);
                    cnt = 0;
                } else {
                    cnt++;
                }
            }
            res = Math.max(res, cnt);
            System.out.println(res);
            return;
        }
        while(sc.hasNextLine()) {
            s = sc.nextLine();
            if(s.endsWith(",")) {
                String numarray[] = s.trim().split(",|\\[|\\]");
                ArrayList<Integer> vec = new ArrayList<>();
                for(int i = 1; i < col + 1; i++) {
                    vec.add(Integer.parseInt(numarray[i]));
                }
                System.out.println(vec);
                matrix.add(vec);
            } else {//endwith "]]"
                String numarray[] = s.trim().split(",|\\[|\\]");
                ArrayList<Integer> vec = new ArrayList<>();
                for(int i = 1; i < col + 1; i++) {
                    vec.add(Integer.parseInt(numarray[i]));
                }
                System.out.println(vec);
                matrix.add(vec);
                System.out.println("break");
                break;
            }
        }
        sc.close();
        System.out.println("scclose");
        row = matrix.size();
        for(int i = 0; i < row; i++) {
            for(int j = 0; j < col; j++) {
                System.out.print(matrix.get(i).get(j) + " ");
            }
            System.out.println("");
        }
        int[] par = new int[row * col];
        for(int i = 0; i < row; i++) {
            for(int j = 0; j < col; j++) {
                if(matrix.get(i).get(j) == 1) {
                    par[i * col + j] = -1;
                }
                System.out.print(par[i * col + j] + " ");
            }
        }
        System.out.println("row = " + row + "col = " + col);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值