如何删除最后一位数字后的逗号? [复制]

Posted

技术标签:

【中文标题】如何删除最后一位数字后的逗号? [复制]【英文标题】:How to remove comma after last digit? [duplicate] 【发布时间】:2016-11-07 17:50:28 【问题描述】:

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

我希望素数用逗号分隔,但我似乎无法摆脱最后一个素数后的逗号。

假设用户选择了数字 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);

【问题讨论】:

使用 + 运算符连接字符串不是一个好主意。这是一个性能瓶颈。使用StringBuilder.append( ),在for循环外使用StringBuilder.delete( )删除最后一个字符(逗号) 你能把数字存储在 int 列表中吗?然后你可以使用System.out.println(list.stream().map(String::valueOf).collect(Collectors.joining(","))); 感谢@Rafiduzmann Sonnet 的帮助,我会采纳你的建议! 谢谢@dty,我正在看类似的东西,但迷路了,不过我会再试一次! 另见:***.com/a/41282608/363573 【参考方案1】:

重写

primeNumbers = primeNumbers + i + ",";

以下方式

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

【讨论】:

谢谢,我明白为什么会这样了! :) 另见:***.com/a/41282608/363573【参考方案2】:

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

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

做这样的事情:

for (blah)

    if (primenumbers.length() > 0)
    
        primenumbers += ",";
    

    ... blah for next prime number.

    primenumbers += nextPrimeNumber;

【讨论】:

感谢您的意见,我会尝试将其纳入我的解决方案。【参考方案3】:

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

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

【讨论】:

感谢您的帮助,非常简单的解决方案!【参考方案4】:

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

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

【讨论】:

感谢您的意见,我需要做更多的研究,看看为什么会这样。【参考方案5】:

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

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

或者在打印时只使用数组列表,使用需要的分隔符加入

【讨论】:

以上是关于如何删除最后一位数字后的逗号? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

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

如何删除最后一个逗号? [重复]

如何删除数组中的最后一个逗号和空格? Java [重复]

★c语言★如何删除字符串中的第一位?★

如何从输出中删除最后一个逗号

如何删除 D3 轴刻度中的逗号并删除最后一个刻度?