在循环中的最后一个数字后删除逗号

时间:2013-12-21 15:09:42

标签: java

这是我的代码

 System.out.println("Enter any integer number ");
int number = scan.nextInt();
while (number > 0) { System.out.print( number % 10 + ",");number = number / 10;}

澄清用户是否输入1234 输出应为4,3,2,1,

如何编辑代码以删除最后一个数字后的逗号? 像4,3,2,1

这样的东西

8 个答案:

答案 0 :(得分:4)

由于每个人都有一个实地日,所以这里是我的:

while (number > 0) {
    System.out.print( number % 10 + ((number/=10)>0 ? "," : ""));
}

答案 1 :(得分:3)

这是我在此过程中采用的最优雅的方法:

String delimiter = "";
while (number > 0) { 
   System.out.print(delimiter + number % 10);
   number /= 10; delimiter = ",";
}

答案 2 :(得分:2)

我会做以下

if (number > 0) {
    System.out.print( number % 10 );
    number = number / 10;
    while (number > 0) { 
        System.out.print("," + (number % 10) );
        number = number / 10;
    }
}

打印第一个元素,然后为所有其他元素添加前,。这样,你总是以

结束
, X

其他选项是进行不必要的if检查。

答案 3 :(得分:1)

我会这样做

while (number > 0) {
    System.out.print(number % 10);
    number = number / 10;
    if (number > 0)
        System.out.print(",");
}

答案 4 :(得分:1)

这可以解决问题:

while (number > 0) {
        System.out.print(number % 10);
        number = number / 10;
        if(number!=0) System.out.print(",");
    }

答案 5 :(得分:0)

Sotirios的解决方案有效,但这里有另一种选择:

// replacing "scan" with an example number.
int start = 123456789;
for (int number = start; number > 0; number = number / 10) {
    if(number < start)
        System.out.print(',');
    System.out.print(number % 10);
}

这将干掉倒计时的计算(数字/ 10),但是进行测试以查看它是否不是每个循环中的第一个。我认为那个测试结果会比做字符串算术(“,”+(数字%10))更快。

希望这有帮助。

答案 6 :(得分:0)

    int x;
    Scanner scan = new Scanner(System.in);

    System.out.print("Enter integer : ");

    x = scan.nextInt();

    for(x = 4; x>1; x = x-1)
    {
        System.out.print(x + ",");
    }
    if (x != 0) // this is so the last number doesn't end with a comma
    {
        System.out.print(x);
    }

答案 7 :(得分:-2)

此处显示的所有代码均无效,因为用户可以输入0并且应该打印出0。

有效代码将按以下方式显示

do
{
    System.out.print( number % 10 );
    number = number / 10;
    if ( number != 0 )
        System.out.print( "," );
} while ( number != 0 );