这是我的代码
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
这样的东西答案 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 );