我想取904并做9 + 0,但904是int变量。我确实尝试了以下代码,但如果用户更改了数字i,则它并不总是有效。
int i = 567;
int j = (i - (i % 100)) / 100 + ((i % 100) - (i % 10)) / 10;
System.out.println(j);
答案 0 :(得分:3)
尝试这种方法
int i=567;
String s=i+""; // Puts `+` into concatenation mode.
int a=Integer.parseInt(s.charAt(0)+"");
int b=Integer.parseInt(s.charAt(1)+"");
System.out.println(a+b);
答案 1 :(得分:1)
你可以拿起第三个数字。
int d3 = x / 100;
第二个数字:
int d2 = (x / 10) % 10;
注意:我假设100 <= x <= 999
更新:我想搜索一个快速解决方案,给出位数,这个question提供了一个(可能)好的解决方案:
x = (int)Math.abs(x); // this is for negative numbers
int digits = (int)Math.log10(x) + 1;
这扩展了100 <= x <= 999
:
int div = Math.pow(10, digits - 1);
int firstDigit = x / div;
div /= 10;
int secondDigit = (x / div) % div;
这适用于任何x != 0
。可能会有更快的解决方案。
答案 2 :(得分:0)
一种方法是制作一个循环,获取最后一个数字(使用i%10
),存储该数字,并在再次循环之前将i
除以10
。
void PrintSumFirstTwoDidgets(int i){
if(i < 10) {
throw new IllegalArgumentException("i must be at least 10.");
}
int secondDigit;
int firstDigit = i % 10;
do {
i /= 10;
secondDigit = firstDigit;
firstDigit = i % 10
} while(i > 0);
System.out.println(firstDigit + secondDigit);
}