【发布时间】:2012-10-16 22:55:34
【问题描述】:
我正在尝试为我的程序声明一个方法,该方法只需要一个 5 位整数,并且对于整数的每个数字,从程序中读取一个值并将其打印出来。我知道这不是很清楚,但我无法传达我的意思。我知道这将是某种 for 循环来单独读取整数的每个数字,直到某个数字达到 5。类似于 charAt() 字符串方法,但适用于数字。
【问题讨论】:
我正在尝试为我的程序声明一个方法,该方法只需要一个 5 位整数,并且对于整数的每个数字,从程序中读取一个值并将其打印出来。我知道这不是很清楚,但我无法传达我的意思。我知道这将是某种 for 循环来单独读取整数的每个数字,直到某个数字达到 5。类似于 charAt() 字符串方法,但适用于数字。
【问题讨论】:
阅读“模数”。它是一种原始操作,可通过 Java 中的符号 % 获得。
对于除法,它是余数。所以
System.out.println("Last digit: "+(12345 % 10));
将打印 5。自己弄清楚如何获得其他数字。
作为一个练习,弄清楚如何打印二进制数字。
【讨论】:
你可以除法取模。
while(n > 0) {
System.out.println("Digit " + (n % 10));
n /= 10;
}
如果您使用任何底数,这很好用:您需要做的就是用 10 代替底数(除以底数意味着左移所有内容,取模意味着得到最后一位)。
【讨论】:
您可以非常轻松地将整数转换为字符串并使用charAt()
String parseableString = Integer.toString(yourInt);
for (int i = 0; i < parseableString.length(); i++){
System.out.println(parseableString.charAt(i));
}
【讨论】:
Integer.parseInt( parseableString.charAt(i) ) 将其解析回int,但正如Anony 所说,这是一种黑客和不必要的转换,但它会在紧要关头完成工作。不过,在这种情况下,取模可能是更好的方法。