【发布时间】:2014-03-14 00:37:10
【问题描述】:
我试图让一个 for 循环从用户通过扫描仪给出的整数的最后一位开始。有什么建议么?
for(int i = number.length()-1;...)
我正在寻找类似的东西,但这不会给我留下编译错误
【问题讨论】:
我试图让一个 for 循环从用户通过扫描仪给出的整数的最后一位开始。有什么建议么?
for(int i = number.length()-1;...)
我正在寻找类似的东西,但这不会给我留下编译错误
【问题讨论】:
您必须将数字转换为String,然后遍历每个字符。
public class IterateNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter a number:");
String num = String.valueOf(scanner.nextInt());
for(int i = num.length()-1; i >= 0; i--){
System.out.println(num.charAt(i));
}
}
}
【讨论】:
使用整数运算:
for (int i = number, digit = i % 10; i > 0; i = i / 10, digit = i % 10) {
// do something with "digit", which will iterate from last digit to first
}
这里有一些示例代码展示了它的工作原理:
int number = 1234567890;
for (int i = number, digit = i % 10; i > 0; i = i / 10, digit = i % 10) {
System.out.println(digit);
}
输出:
0
9
8
7
6
5
4
3
2
1
【讨论】: