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

Java 如何删除最后一个数字后的逗号?,java,csv,comma,Java,Csv,Comma,我试图写一个程序,将列出素数最多,但不包括一个由用户确定的数字 我希望素数之间用逗号隔开,但我似乎无法去掉最后一个素数后面的逗号 假设用户选择数字10 清单应为: 2,3,5,7 我得到的是: 2,3,5,7 我知道这可能会被问到很多问题,但我找不到任何有帮助的,或者我知道如何应用于我的问题 有人能给我指出正确的方向吗 谢谢 Scanner scanner = new Scanner(System.in); int i = 0; int num = 0; Strin

我试图写一个程序,将列出素数最多,但不包括一个由用户确定的数字

我希望素数之间用逗号隔开,但我似乎无法去掉最后一个素数后面的逗号

假设用户选择数字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);
Scanner Scanner=新的扫描仪(System.in);
int i=0;
int num=0;
字符串素数=”;
System.out.println(“选择一个数字,任意数字:”);
int n=scanner.nextInt();
对于(i=1;i=1;num--){
如果(i%num==0){
计数器=计数器+1;
}
}
如果(计数器==2){
素数=素数+i+“,”;
}
}
System.out.println(“\n到“+n+”的素数为:”);
System.out.println(素数);
简短回答: 不要添加不需要的逗号

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

这样做:

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

    ... blah for next prime number.

    primenumbers += nextPrimeNumber;
}
简短答复: 不要添加不需要的逗号

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

这样做:

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

    ... blah for next prime number.

    primenumbers += nextPrimeNumber;
}

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


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

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

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

primeNumbers = primeNumbers + i + ",";
以下列方式

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

primeNumbers = primeNumbers + i + ",";
以下列方式

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

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

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

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

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

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

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

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

只需在打印数字之前添加此部分即可

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

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

使用+运算符连接字符串不是一个好主意。这是一个性能瓶颈。使用
StringBuilder.append()
并在for循环外部使用
StringBuilder.delete()
删除最后一个字符(逗号)您可以将数字存储在int列表中吗?然后可以使用
System.out.println(list.stream().map(String::valueOf).collect(collector.joining(“,”))谢谢你的帮助@Rafiduzmann十四行诗,我会采纳你的建议!谢谢@dty,我正在看这样的东西,但刚刚迷路,我会再试试的!另请参见:使用+运算符连接字符串不是一个好主意。这是一个性能瓶颈。使用
StringBuilder.append()
并在for循环外部使用
StringBuilder.delete()
删除最后一个字符(逗号)您可以将数字存储在int列表中吗?然后可以使用
System.out.println(list.stream().map(String::valueOf).collect(collector.joining(“,”))谢谢你的帮助@Rafiduzmann十四行诗,我会采纳你的建议!谢谢@dty,我正在看这样的东西,但刚刚迷路,我会再试试的!另请参见:谢谢,我能理解为什么这样做!:)另请参见:谢谢,我能理解为什么这样做!:)另请参见:感谢您的帮助,非常简单的解决方案!感谢您的帮助,很好的简单解决方案!感谢您的输入,我需要做更多的研究来了解为什么这样做。感谢您的输入,我需要做更多的研究来了解为什么这样做。感谢您的输入,我将尝试将其应用到我的解决方案中。感谢您的输入,我将尝试将其应用到我的解决方案中。