Java 删除循环中最后一个数字后的逗号
这是我的密码Java 删除循环中最后一个数字后的逗号,java,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 如何编辑代码以删除最后一个num之后的逗号? 类似于4,3,2,1的东西,我会做以下几点 if (numbe
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
如何编辑代码以删除最后一个num之后的逗号?
类似于4,3,2,1的东西,我会做以下几点
if (number > 0) {
System.out.print( number % 10 );
number = number / 10;
while (number > 0) {
System.out.print("," + (number % 10) );
number = number / 10;
}
}
打印第一个元素,然后为所有其他元素添加一个,
。这样,你总是以一个
, X
其他选项正在执行不必要的if
检查 我会这样做的
while (number > 0) {
System.out.print(number % 10);
number = number / 10;
if (number > 0)
System.out.print(",");
}
因为每个人都有一个野外活动日,我的:
while (number > 0) {
System.out.print( number % 10 + ((number/=10)>0 ? "," : ""));
}
这可以做到:
while (number > 0) {
System.out.print(number % 10);
number = number / 10;
if(number!=0) System.out.print(",");
}
此处显示的所有代码都无效,因为用户可以输入0,并且应打印出0 有效代码如下所示
do
{
System.out.print( number % 10 );
number = number / 10;
if ( number != 0 )
System.out.print( "," );
} while ( number != 0 );
这是我在此过程中选择的最优雅的方法:
String delimiter = "";
while (number > 0) {
System.out.print(delimiter + number % 10);
number /= 10; delimiter = ",";
}
索蒂里奥斯的解决方案可行,但这里有一个替代方案:
// 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);
}
//将“扫描”替换为示例编号。
int start=123456789;
对于(整数=开始;数字>0;数字=数字/10){
如果(编号<开始)
系统输出打印(',');
系统输出打印(编号%10);
}
这将使倒计时(数字/10)的计算干涸,但会进行测试,以确定它是否不是每个循环中的第一个。然而,我认为那个测试会比字符串算术更快(“,”+(数字%10))
希望这能有所帮助。我不会写一行代码来显示OP,我只会说在循环的每个迭代中,在第一次迭代之后,先写逗号。(给一个人一条鱼,他吃一天……)OP清楚地说
(数字>0)
@Sotirios Delimanolis,我认为他犯了和其他人一样的错误。所以OP不知道他们想要什么?@Sotirios Delimanolis。问题不在于他是否知道。问题是,这种错误在初学者中很常见。他们忘记了零是一个有效的数字,可以由用户输入,也可以是负数。我认为OP是在说:“如果输入了0,就不应该打印任何内容。”while循环是否可以嵌套在If
中number/=10
之后?毕竟,如果(number>0)
第一次计算为false,那么while
循环也会计算为false,所以如果第一次失败,我们不需要再检查它两次?@nhgrif是的,很好。如果它将第4轮循环到第1轮,这肯定有效。
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);
}