使用数组查找前100个素数(JAVA)

使用数组查找前100个素数(JAVA),java,arrays,Java,Arrays,我尝试在java中使用数组显示前100个素数,它工作正常,但输出在每个数字之前显示为零: -我想要的是: 2 3 5 11 13 17.... -我得到的输出: 2 03 05 011 013 017.... 有人知道如何从输出中的数字中删除零位吗? 多谢各位 import java.util.Scanner; class ttar { public static void main(String args[]) {

我尝试在java中使用数组显示前100个素数,它工作正常,但输出在每个数字之前显示为零: -我想要的是: 2 3 5 11 13 17.... -我得到的输出: 2 03 05 011 013 017.... 有人知道如何从输出中的数字中删除零位吗? 多谢各位

  import java.util.Scanner;

     class ttar

      {  



       public static void main(String args[])

         {
            int[] array = new int[542];
            int m;

            int primumnum;
            String r = "";


            for (m=0; m<=542; m++)
            {
                int counter = 0;

                for(primumnum=m; primumnum>=1; primumnum--)
                {
                    if(m % primumnum == 0)
                    {
                        counter = counter + 1;
                    }
                }
                if(counter == 2)
                {
                    r = r + m + " ";
                    r+= array[m];

                }

            }
             System.out.println("These are the first 100 prime numbers");
             System.out.println(r);

             }
             }

0来自此行:

r+= array[m];
从不为数组指定任何值,因此所有元素都为0


为什么首先要使用数组?

为什么要在代码中使用r+=array[m]。正如@Henry所建议的,如果在代码中对这一行进行注释,则这一行会导致问题,您将获得所需的结果

int[] array = new int[542];
    int m;

    int primumnum;
    String r = "";


    for (m=0; m<=542; m++)
    {
        int counter = 0;

        for(primumnum=m; primumnum>=1; primumnum--)
        {
            if(m % primumnum == 0)
            {
                counter = counter + 1;
            }
        }
        if(counter == 2)
        {
            r = r + m + " ";
            //r+= array[m];

        }

    }
或者要得到素数,你也可以做如下操作

class GeneratePrime{
 public static boolean isPrime(int x)
    {
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }

        return true;
    }

public static void main(String args[]){
    int currentNumber = 2;
    int primesFound = 0;

    while (primesFound < 100) {
        if (isPrime(currentNumber)) {
            primesFound++;

            System.out.print (currentNumber + " ");
            if (primesFound % 10 == 0) {
                System.out.println();
            }
        }

        currentNumber++;
    }
}}

如果你已经知道如何使用+=运算符,为什么不在这里使用r=r+m+;谢谢你的回复,事实上,我是java数组新手,我想用它来获得前100个素数。是的,但你不用它。删除对数组的所有引用,您的程序将执行您想要的操作,但仍有改进的余地