2015-09-13 3 views
3

Если у меня есть два целых цель - заменить последние 3 цифры x1 на x2Простой способ заменить цифры из массива Int?

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)); 

Вопрос - Есть ли neccesary иметь три, если условными, или есть более простой способ сделать это?

ответ

1

В вашем коде нет массива int.

Замена последние три цифры положительного целого числа на последние три цифры номера postitive целое просто требует немного математики:

x1 = (x1/1000)*1000 + x2%1000; 

(x1/1000)*1000 нули последние 3 цифры x1, потому что/делает целочисленное деление когда применяется к целым типам.
x2% 1000 приводит только к 3 последним цифрам x2.
И сумма - это результат, который вы хотите.

Вещи немного сложнее, если задействованы отрицательные числа.

Если мы используем тот факт, что вопрос гласит, что x2 не может быть больше, чем 999, мы можем упростить код:

x1 = (x1/1000)*1000 + x2;