0

我创建一个整数,我必须向后打印出这些值。所以如果我的号码是 12345,它必须打印:

5
4
3
2
1

这些数字必须在单独的行上:

System.out.println(number.nextDigit());

每个都有一个nextDigit();从最后一个数字返回下一个数字的方法,它必须返回一个整数,而不是字符或字符串。

有什么帮助吗?

这是我的代码: http: //pastebin.com/xrpKZixE

4

3 回答 3

4

与可能包含多个字符的字符串不同,ints 表示单个数字。

用 s 解决这个问题的诀窍int是应用%/运算符:通过取num % 10,你得到最后一个数字;通过取num / 10,你砍掉最后一个数字。

while (num != 0) {
    int lastDigit = num % 10;
    num /= 10;
    System.out.println(lastDigit);
}
于 2012-10-31T01:45:45.647 回答
2

可能最容易转换为字符串,然后从那里开始:

String digits = String.valueOf(number);
char thirdDigit = digits.charAt(2);
int thirdDigitAsNumber = Integer.parseInt(digits.substring(2,3));
于 2012-10-31T01:46:31.177 回答
1

上面的答案很好。如果我正确理解您的问题,您还可以使用递归方法从最后一位数字开始垂直打印您的数字,这是您可以使用的递归方法:

public static void writeVertical(int number)
{
if(number <10)
 System.out.println(number);
else
{
 System.out.println(number%10);
 writeVertical(number/10);
}

}

于 2012-10-31T02:11:06.827 回答