如何在最后一个数字后删除逗号?

时间:2016-11-07 17:50:29

标签: java csv comma

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

我希望用逗号分隔素数,但在最终素数之后我似乎无法摆脱逗号。

假设用户选择号码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);

5 个答案:

答案 0 :(得分:2)

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

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

做这样的事情:

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

    ... blah for next prime number.

    primenumbers += nextPrimeNumber;
}

答案 1 :(得分:2)

重写

primeNumbers = primeNumbers + i + ",";

以下列方式

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

答案 2 :(得分:0)

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

或者,您可以检查字符串是否为空。如果不是只使用for (DataSnapshot snapshot : dataSnapshot.getChildren()) { if (!snapshot.getKey().equals(currentuseruid)) { player2uid = snapshot.getKey(); } }

删除最后一个字符

答案 3 :(得分:0)

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

.layover

答案 4 :(得分:0)

只需在打印号码前添加此部分。

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

或者当您使用所需的separtor打印使用连接时,只需使用数组列表