Так что я делаю генератор случайных чисел и пытался добавить предложение в начале каждого - PullRequest
0 голосов
/ 08 ноября 2018

Таким образом, я делаю генератор случайных чисел, где пользователь вводит наименьшее значение, наибольшее значение и желаемое количество случайных чисел, которые они хотят получить, вне диапазона и пытался добавить предложение в начале каждого выходящего числа.дает мне. Я прошел путь до того, где он генерирует мне количество чисел «х», когда дано самое низкое и самое высокое значение.Он выводит результаты по одному в новой строке, и мне было интересно, могу ли я добавить строку, которая повторяет количество раз, которое пользователь хочет генерировать случайные числа из диапазона.

//This java utility was used to allow the program to choose random number.
import java.util.Random;
//This java utility was used to allow the program to allow the user to input requested data.
import java.util.Scanner;
import java.util.function.IntConsumer;

class Main {

    public static void main(String[] args) {

        /*
         * A welcoming message was added to give the user information on what the
         * program was created for. The program asks for the user to choose a range and
         * to input the lowest number in the range, highest number in range, and how
         * many results should the program print
         */

        System.out.println("Hello, this program will compute a set");
        System.out.println("amount of random numbers in the given range.");
        System.out.println("");

        /*
         * This set of code asks the user to give the value of the lowest and highest
         * integer in their range and translates the string into an integer using
         * Integer.parseInt(lower/higherLimit). This allows the computer to understand
         * the actual value of the number given. It then takes the value added and puts
         * in into the variables of 'min' and 'max' for the lowest and highest numbers
         * given respectively.
         */

        Scanner input = new Scanner(System.in);
        System.out.print("Enter lower limit of the range:");
        String lowerLimit = input.nextLine();
        int min = Integer.parseInt(lowerLimit);

        Scanner input1 = new Scanner(System.in);
        System.out.print("Enter higher limit of the range:");
        String higherLimit = input.nextLine();
        int max = Integer.parseInt(higherLimit);

        /*
         * 
         */
        Scanner input3 = new Scanner(System.in);
        System.out.print("How many numbers shall I print:");
        String amountPrinted = input3.nextLine();
        int amount = Integer.parseInt(amountPrinted);

        int amount1 = amount;
        int min1 = min;
        int max1 = max;
        {
            Random random = new Random();

            random.ints(amount1, min1, max1).sorted().forEach(System.out::println);


        }

    }
}

1 Ответ

0 голосов
/ 08 ноября 2018

Я думаю, вы должны использовать лямбда-выражение для этого. Простая ссылка на метод не совсем справится с этим.

   public static void main( String[] args ) {
      int amount1 = 10;
      int min1 = 3;
      int max1 = 18;
      Random random = new Random();
      random.ints( amount1, min1, max1 ).sorted()
         .forEach( i -> System.out.println( "Your number is " + i ) );
   }

Есть несколько способов добавить индекс (счетчик) к этому. Вот простой, но он немного злоупотребляет классом Random.

  IntStream.range( 0, amount1 ).forEach( i -> 
      System.out.println( "Rng #" + i + " is " + 
           (new Random().nextInt( max1-min1 ) + min1 )) );

Вы также можете добавить счетчики с чем-то вроде AtomicInteger. Смотрите этот вопрос и ответ:

Есть ли краткий способ перебора потока с индексами в Java 8?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...