Java - ввод пользователя в массивы - PullRequest
0 голосов
/ 23 февраля 2020

Так что я супер новый в плане кодирования и 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");
        }
    }
}

Ответы [ 4 ]

1 голос
/ 23 февраля 2020

Еще одна идея, не такая простая, как массив, но более элегантная, заключается в использовании коллекции целых чисел, например:

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);
}
1 голос
/ 23 февраля 2020

Вы уже разбиваете входные данные на массив, но не сохраняете его. Попробуйте это:

  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");
0 голосов
/ 23 февраля 2020
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));
}
}
0 голосов
/ 23 февраля 2020

Вы можете просто сделать это.

 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 + " ");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...