如果我有两个整数
目标-用x2替换x1的后3位数字
int x1 = 1000;
int x2 = 3; //x2 can't be larger than 999
char[] digits = String.valueOf(x1).toCharArray();
char[] digits2 = String.valueOf(x2).toCharArray();
if(digits2.length == 3) {
replace digits[1],[2],[3] by digits[0,1,2]
}
if(digits2.length == 2) {
replace digits[2,3] by digits[0,1] and replace digits[1] by 0
}
if(digits.length == 1) {
replace digits[3] by digits[0] and digits[1,2,] by 0
}
x1 = Integer.parseInt(new String(digits));
问题-如果有条件的话,是否需要三个条件?或者是否有更简单的方法来做到这一点?
最佳答案
您的代码中没有int数组。
用正整数的后三位代替正整数的后三位只需要一点数学即可:
x1 = (x1/1000)*1000 + x2%1000;
(x1/1000)*1000
将x1
的后三位置零,因为/在应用于整数类型时会进行整数除法。x2%1000仅导致
x2
的最后3位数字。总和就是您想要的结果。
如果涉及负数,事情会变得更加复杂。
如果我们利用问题指出
x2
不能大于999的事实,可以将代码简化为:x1 = (x1/1000)*1000 + x2;
关于java - 从Int数组替换数字的更简单方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32554556/