如何删除末尾的逗号

时间:2021-07-03 19:12:22

标签: java

我正在编写一个简单的 java 代码,它将两个整数作为最小值和最大值,将第三个整数作为除数,它发现它们之间的所有数字都可以被第三个整数整除,这工作正常,但在输出中我不能去掉最后一个逗号。

Scanner scanner = new Scanner(System.in);
    System.out.print("Enter the first number: ");
    int a = scanner.nextInt();
    System.out.print("Enter the second number: ");
    int b = scanner.nextInt();
    System.out.print("Enter the divisor: ");
    int d = scanner.nextInt();
    for(int i=a; i<=b; i++) {
        if(i%d == 0)
            System.out.print(i+", ");
    }

我该怎么做?

5 个答案:

答案 0 :(得分:3)

我更喜欢通过在适当的地方而不是之后写逗号来避免这个问题。与知道什么时候在做最后一件事相比,知道什么时候在做第一件事似乎更直接。

String sep = ""; // no separator before first print
for (int i=a; i<=b; i++) {
    if (i%d == 0) {
        System.out.print(sep + i);
        sep = ", "; // separator for every following print
    }
}

答案 1 :(得分:1)

如果逗号不是最后一个元素,您可以使用 if 语句打印逗号。

if(i%d == 0){
    System.out.print(i);
    if(((i/d)+1)*d <= b) System.out.print(", ");
}

答案 2 :(得分:1)

您可以使用 as boolean 来控制打印逗号。

boolean addComma = false;
for (int i=a; i<=b; i++) {
    if (i%d == 0) {
        System.out.print((v ?  "," : "") + i);
        addComma = true;
    }
}

答案 3 :(得分:1)

对于这类问题,StringJoiner 特别有用:

StringJoiner out = new StringJoiner(",");
for(int i=a; i<=b; i++) {
    if(i%d == 0)
        out.add(Integer.toString(i));
}
System.out.println(out);

答案 4 :(得分:0)

如果是最后一个数字,您可以使用 substring 去掉末尾的空格和逗号。它不像 Unmitigated 的解决方案那么优雅,但它应该可以工作:

String validNumbers = "";
for(int i=a; i<=b; i++) {
    if(i%d == 0)
    validNumbers += i + ", ";
}
if (validNumbers != "") {
    validNumbers = validNumbers.substring(0, validNumbers.length() - 2);
}
System.out.print(validNumbers);