如何删除最后一位数字后的逗号? [复制]
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);
或者在打印时只使用数组列表,使用需要的分隔符加入
【讨论】:
以上是关于如何删除最后一位数字后的逗号? [复制]的主要内容,如果未能解决你的问题,请参考以下文章