读取由java中的空格分隔的输入

Dev*_*Dev 1 java inputstream java.util.scanner

我正在努力解决以下问题.

问题:输入包含块数n(1≤n≤20)和由空格分隔的块w1,...,wn(整数,1≤wi≤100000)的权重.输入应该来自用户.

  1. 我应该如何用空格写输入?(假设我对块数的输入是n = 5,块的权重是:2 3 55 6 33 - 因为n = 5)
  2. 我应该如何读取用空格给出的输入并将其存储在某个列表或数组中?使用什么命令.

请找到我的代码:

public static void main(String[] args) {
    int b1 = 0;
    Scanner in = new Scanner(System.in);
    System.out.println("Enter no. of blocks: ");
    b1 = in.nextInt();
    if (b1<=20) {
        in.nextLine();
        int[] arr = new int[b1];
        for (int i=0; i<b1; i++) {
            System.out.println("Enter a weights of ths blocks: ");
            if (arr[i]<=100000) {
          arr[i] = in.nextInt();




            }
    }
        }
Run Code Online (Sandbox Code Playgroud)

我不认为这是正确的方式因为输入应该用空格分隔..

我正在考虑如何进行,但无法提出任何解决方案.你可以帮我解决这个问题.谢谢.

Mit*_*hun 5

  1. 输入可以在命令行中作为"input1 input2 input3"给出(权重用空格分隔)

  2. 您可以使用扫描仪读取输入.请考虑以下示例代码:

假设输入只是整数.

 Scanner scanner = new Scanner(System.in);
 int numOfBlocks = scanner.nextInt();
 int weightArray[] = new weightArray[numOfBlocks];
 for(int i=0;i<numOfBlocks;i++)
       {
        weightArray[i] = scanner.nextInt();
       }
 scanner.close();
//your logic
Run Code Online (Sandbox Code Playgroud)