Как вывести 10 целых чисел на строку в Java? - PullRequest
0 голосов
/ 08 декабря 2018

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

public class Lab4 {
    public static void main(String[] args) {
        int i = 0;
        int num = 0;

        String primeNumbers = " ";

        for (i = 1; i <= 230; i++) 
        {
            int counter = 0;

            for (num = i; num >= 1; num--) 
            {
                if (i % num == 0) 
                {
                    counter = counter + 1;
                }
            }

            if (counter == 2) 
            {
                primeNumbers = primeNumbers + i + " ";
            }
        } 

        System.out.println(primeNumbers);
    }
}

Ответы [ 3 ]

0 голосов
/ 08 декабря 2018

Просто добавьте этот фрагмент кода ниже после этой строки в вашем коде: primeNumbers = primeNumbers + i + " ";

    if (newLineCount == 10) {
      primeNumbers += '\n';
      newLineCount = 0;
    }
    newLineCount++;

Также инициализируйте newLineCount перед циклом: int newLineCount = 0;

Дополнительно, какупомянутые в комментариях, рассмотрите возможность использования StringBuilder вместо String или даже лучше ArrayList для хранения ваших чисел, тогда у вас может быть метод для печати значений из вашего ArrayList любым форматированным способом, который вы хотите (с вкладками, выравниванием,новые строки ...)

0 голосов
/ 08 декабря 2018

Вот код, который соответствует вашим потребностям.Я ничего не изменил в вашем коде, просто добавил свой в соответствии с вашими потребностями.

public class print_prime_numbers_10_per_line {


    public static void main(String[] args) {
        int i = 0;
        int num = 0;

        String primeNumbers = "";

        for (i = 1; i <= 230; i++) {
            int counter = 0;

            for (num = i; num >= 1; num--) {
                if (i % num == 0) {
                    counter = counter + 1;
                }
            }

            if (counter == 2) {
                primeNumbers = primeNumbers + i + " ";
            }
        }
        String[] integerStrings = primeNumbers.split(" ");

        int[] integers = new int[integerStrings.length];
        for (int x = 0; x < integers.length; x++) {
            integers[x] = Integer.valueOf(integerStrings[x]);
        }

        for (int g = 0; g < integers.length; g++) {
            if (g % 11 == 0) {
                System.out.println();
            } else {
                System.out.print(integers[g] + " ");

            }
        }
    }
}
0 голосов
/ 08 декабря 2018

Вам нужно посчитать, сколько предметов вы уже добавили, и как только у вас будет 10, вам нужно поставить новую строку.Также я изменил String на StringBuilder, потому что конкатенация в цикле не очень хороша, вы можете прочитать об этом здесь StringBuilder против конкатенации строк

int i = 0;
int num = 0;
int lineCounter = 0;

StringBuilder primeNumbers = new StringBuilder();

for (i = 1; i <= 230; i++) {
    int counter = 0;

    for (num = i; num >= 1; num--) {
        if (i % num == 0) {
            counter = counter + 1;
        }
    }

    if (counter == 2) {
        primeNumbers.append(i).append(" ");
        lineCounter++;
    }

    if (lineCounter == 10) {
        primeNumbers.append(System.lineSeparator());
        lineCounter = 0;
    }
}

System.out.println(primeNumbers);
...