如何删除最后一位数字后的逗号?

How to remove comma after last digit?

我正在尝试编写一个程序,列出最多但不包括用户确定的数字的素数。

我想用逗号分隔质数,但我似乎无法去掉最后一个质数后的逗号。

假设用户选择数字 10。

列表应该是: 2,3,5,7

我得到的是: 2,3,5,7,

我知道这可能被问了很多,但我找不到任何有用的东西,或者我明白如何应用到我的问题。

有人能给我指出正确的方向吗?

谢谢。

Scanner scanner = new Scanner(System.in);

    int i = 0;

    int num = 0;

    String primeNumbers = "";

    System.out.println("Pick a number, any number: ");

    int n = scanner.nextInt();

    for (i = 1; i < n; 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("\nThe prime numbers up to " + n + " are: ");

    System.out.println(primeNumbers);

简答: 不要添加不需要的逗号。

一些细节: 添加逗号时反转。

做这样的事情:

for (blah)
{
    if (primenumbers.length() > 0)
    {
        primenumbers += ",";
    }

    ... blah for next prime number.

    primenumbers += nextPrimeNumber;
}

不要让逗号跟在最后一个数字后面,而应该把它放在最后一个数字之前(字符串总是可以初始化为第一个没有逗号的质数)。

或者,您可以检查字符串是否为空。如果不只是使用 primeNumbers = primeNumbers.substring(0, primeNumbers.length() - 1)

删除最后一个字符

重写

primeNumbers = primeNumbers + i + ",";

通过以下方式

if(!primeNumbers.isEmpty()) {primeNumbers+=".";}
primeNumbers = primeNumbers + i;

一个简单的方法是从 primeNumbers 字符串中删除最后一个字符。

primeNumbers.slice(0,primeNumbers.length-1);

在打印数字之前添加这部分。

    if (primeNumbers.lastIndexOf(",") > 0) {
        primeNumbers = primeNumbers.substring(0, primeNumbers.length() - 1);
    }

或者打印时只使用 Array List 使用 join 和需要的分隔符