Сдвиг чисел в строке вправо влево на Java
Хотел ответить на вопрос. Но пока писал код налетело куча ответов и вопрос заминусовали. Плюс пытаясь написать код я понял код в вопросе и мой менее оптимальный, но умеет смещать цифры в строке вправо, влево и выводит в нужном формате даже если есть 0 в числе. Вот что у меня получилось, авось какому-нибудь студенту пригодится код для ротации цифр в числе без использования библиотечных функций, массива и строк на java:
package ru.yamakarov.examples;
public class RotateNumber {
public static void main(String[] args) {
int n = 12345670;
// count digits
int count = 1;
int x = n;
int pow = 1;
while ((x /= 10) > 0) {
count++;
pow *= 10;
}
int shift = 3;
if (shift > 0) {
for (int i = 0; i < shift; i++) {
n = (n % 10) * pow + (n / 10);
}
} else {
for (int i = shift; i < 0; i++) {
int firstDigit = n / pow;
n = (n - firstDigit * pow) * 10 + firstDigit;
}
}
System.out.println(String.format("%0" + count + "d", n));
}
}