有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

拆分如何在Java中每行输出10个整数?

问题是在5行中显示前50个素数,每行包含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) 个答案

  1. # 1 楼答案

    只需在代码中的这一行之后添加下面的这段代码:primeNumbers = primeNumbers + i + " ";

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

    也在循环之前初始化newLineCountint newLineCount = 0;

    另外,如注释中所提到的,考虑使用^ {CD4>}而不是^ {< CD5>},或者甚至更好地^ {CD6>}来存储您的数字,然后您可以按照您想要的任何格式化方式(以选项卡、对齐、新行……)从您的ARARELIST中打印值

  2. # 2 楼答案

    你需要数一数你已经添加了多少项,一旦你有了10项,你就需要换一行。另外,我将String更改为StringBuilder,因为循环中的串联不是很好,您可以在这里阅读StringBuilder vs String concatenation

    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);
    
  3. # 3 楼答案

    下面是适合您需要的代码。我没有对你的代码做任何更改,只是添加了我的代码以满足你的需要

    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] + " ");
    
                }
            }
        }
    }