Может быть более эффективным способом, но если вы имеете дело только с 6-значным номером, проблема с производительностью пренебрежимо мала.
Итерации над цифрами [с использованием операторов% и/на исходном номере] и для каждой цифры вычислить значение +2 [с% 10] и добавить его к новому номеру с соответствующим показателем.
int x = 999999;
int $ = 0;
int exp = 0;
while (x > 0) {
int t = ((x % 10) +2) %10;
$ += Math.pow(10, exp++) *t;
x /= 10;
}
System.out.println($);
Примечание: оно будет разрываться, если число неявно содержит нули слева [т. если 123 следует преобразовать в 222345]. Вы можете позаботиться об этом, итерации в то время как (exp < 6)
вместо (x > 0)
Если вы хотите, чтобы люди нашли время, чтобы ответить на ваши вопросы, пожалуйста, найдите время, чтобы принять ответы. (Нажмите на галочку рядом с лучшим ответом.) –
Теперь я пытаюсь найти способ сделать это с помощью оператора%. – user1074989
Я бы не назвал этот «сдвиг», потому что это не сдвиг. Во всяком случае, я недавно столкнулся с проблемой разделения целого на свои цифры на Java и нашел, что это довольно сложно выполнить –