【问题标题】:Java - making user input into arraysJava - 使用户输入到数组中
【发布时间】:2020-06-07 10:33:40
【问题描述】:

所以我在编码和 java 方面是超级新手,我这周才开始,但已经陷入了一个非常简单的问题。我应该首先检查用户输入的整数是否只有五个(在同一行)——我已经尝试过并且可能成功了?

但是,如果用户确实输入了五个整数,我应该将该输入放入一个包含整数的数组中,而我只是不知道该怎么做。我试图自己弄清楚,但我根本不明白该怎么做。谁能给我解释一下,不胜感激!

这是我的(可能非常缺乏)代码:

import java.util.Scanner;

public class Try2 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String inputR = in.nextLine(); 
        int lengthArgs = 5;
        int nummer = (inputR.split(" ").length);    
        if(nummer == lengthArgs) {
         //???
        }
        else {
          System.out.println("Wrong");
        }
    }
}

【问题讨论】:

  • 您的问题已经得到解答:)请看; stackoverflow.com/questions/8348591/…
  • 1) 我假设您可能正在使用像 Eclipse 或 IntelliJ 这样的 IDE。 熟悉它的调试器。第一个任务:确认inputR.split(" ") 给你5 个元素。 2)将“数字”更改为number(拼写错误看起来很糟糕)。 3) 使用new int[]。 4) 使用Integer.praseInt()

标签: java arrays input


【解决方案1】:

您已经将输入拆分为一个数组,但没有保留它。试试这个:

  Scanner in = new Scanner(System.in);
    String inputR = in.nextLine(); 
    int lengthArgs = 5;
    String[] values inputR.split(" ");

    if(values.length == lengthArgs) {
        int[] numbers = new int[values.length];
        for(int i = 0;i < lengthArgs;i++) {
          // Note that this is assuming valid input
          // If you want to check then add a try/catch 
          numbers[i] = Integer.parseInt(values [i]);
       }
   }else {
   System.out.println("Wrong");

【讨论】:

    【解决方案2】:

    你可以这样做。

     Scanner in  = new Scanner(System.in);
         int arr[] = new int [5];
          for(int i = 0; i < 5; i++){
           int a = in.nextInt();
           arr[i] = a;
           }
    
          for(int i : arr)
              System.out.print(i + " ");
    

    【讨论】:

      【解决方案3】:
      import java.util.Arrays;
      import java.util.Scanner;
      
      public class Test {
      public static void main(String[] args) {
          Scanner in = new Scanner(System.in);
          int lengthArgs = 5;
      
          String[] enteredChars;
          do {
              System.out.println("enter " + lengthArgs + "  numbers");
              enteredChars = in.nextLine().split(" ");
          } while (enteredChars.length != lengthArgs);
      
          int[] array = new int[lengthArgs];
          for (int i = 0; i < lengthArgs; i++) {
              try {
                  array[i] = Integer.parseInt(enteredChars[i]);
              } catch (NumberFormatException e) {
                  e.printStackTrace();// You have to do make sure that than you again have to enter all x numbers
              }
          }
      
          System.out.println("Your array " + Arrays.toString(array));
      }
      }
      

      【讨论】:

        【解决方案4】:

        另一个想法,不像数组那么简单,但更优雅的是使用整数集合,像这样:

        public static void main(String[] args) {
        
            Scanner in = new Scanner(System.in);
            String inputR = in.nextLine();
            String inputs[] = inputR.split(" ");
        
            if(inputs.length != 5) {
                System.out.println("Invalid number of input");
            }
        
            List<Integer> integers = new ArrayList<>();
            for (String s : inputs) {
                Integer number = Integer.parseInt(s);
                integers.add(number);
            }
            System.out.println("Got following numbers in my input: "  + integers);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-10
          相关资源
          最近更新 更多