猿问

在每行中使用多个输入的多行

我的要求是在多行上从用户那里获取多个输入。


每行表示输入的含义为:Power Energy Idea Strength每行仅由一个空格分隔。


输入:


2 4 5 7

3 4 8 1 

4 2 3 6

输出包括列表:


List<Integer> power = {2,3,4}

List<Integer> energy = {4,4,2}

List<Integer> idea = {5,8,3}

List<Integer> strength = {7,1,6}

首选解决方案是 Java,但如果可以提供 Java-8 解决方案,我会喜欢的。


到目前为止,我已经尝试过但没有运气:


        String input = "";

        Scanner keyboard = new Scanner(System.in);

        String line;

        while (keyboard.hasNextLine()) {

            line = keyboard.nextLine();

            if (line.isEmpty()) {

                break;

            }

            input += line + "\n";

        }

        System.out.println(input);

我能够读取多行输入,但无法将它们作为单独的类别保存在List.


Qyouu
浏览 97回答 2
2回答

猛跑小猪

您可以简单地拆分行并将值放在单独的列表中:    line = keyboard.nextLine();    if (line.isEmpty()) {        break;    }    String arr[] = line.split(" ");// spiting the line based on space    if (arr.length==4) { // check if length is 4 as you are expecting    // use Integer.valueOf() to convert from string to Integer        power.add(arr[0]);        energy.add(arr[1]);        idea.add(arr[2]);        strength.add(arr[3]);    }else {        //throw exception or break    }    input += line + "\n";}

潇潇雨雨

您可以使用此程序输入任意多的值:List<Integer> power = new ArrayList<>();List<Integer> energy = new ArrayList<>();List<Integer> idea = new ArrayList<>();List<Integer> strength = new ArrayList<>();Scanner sc = new Scanner(System.in);while(true) {&nbsp; String s = sc.nextLine();&nbsp; if(s.equals("exit")) break;&nbsp; String args = s.split(" ");&nbsp; if(args.length >= 4) {&nbsp; &nbsp; power.add(Integer.valueOf(args[0]));&nbsp; &nbsp; energy.add(Integer.valueOf(args[1]));&nbsp; &nbsp; idea.add(Integer.valueOf(args[2]));&nbsp; &nbsp; strength.add(Integer.valueOf(args[3]));&nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答