我有以下代码用于帮助我找到 1 和用户输入的任何内容之间的素数。唯一的问题是,我必须输出没有括号和逗号的数字。我该怎么做?
System.out.println("\nLab1la\n");
Scanner input = new Scanner(System.in);
System.out.println("Enter the primes upperbond ==>> ");
final int MAX = input.nextInt();
boolean primes[];
primes = new boolean[MAX];
ArrayList<Integer>PrimeFactor = new ArrayList<Integer>();
for (int i = 2; i < MAX + 1 ; i++)
{
PrimeFactor.add(i);
}
CompositeNumbers(PrimeFactor);
System.out.println("COMPUTING RIME NUMBERS");
System.out.println();
System.out.println("PRIMES BETWEEN 1 AND " + MAX);
System.out.print(PrimeFactor);
}
public static void CompositeNumbers(ArrayList<Integer> PrimeFactor)
{
for (int i = 0; i < PrimeFactor.size(); i++)
{
if (!isPrime(PrimeFactor.get(i)))
{
PrimeFactor.remove(i);
i--;
}
}
}
public static boolean isPrime(int n)
{
if(n==1)
{
return true;
}
for (int i = 2; i < n +1/2; i++)
{
if (n%i == 0)
{
return false;
}
}
return true;
}
}
最佳答案
依次输出每个值即可。例如:
// TODO: Rename PrimeFactor to primeFactors to follow Java naming conventions
for (int value : PrimeFactor)
{
System.out.print(value);
System.out.print(" "); // Or whatever separator you want
}
(这将在末尾输出一个额外的空格;摆脱它稍微繁琐,但不太难......)
或者使用像 Guava 的 Joiner
这样的东西类:
System.out.println(Joiner.on(' ').join(PrimeFactor));
关于java - 如何在不输出括号和逗号的情况下输出Arraylist中的数字列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29424788/