Хотел ответить на вопрос. Но пока писал код налетело куча ответов и вопрос заминусовали. Плюс пытаясь написать код я понял код в вопросе и мой менее оптимальный, но умеет смещать цифры в строке вправо, влево и выводит в нужном формате даже если есть 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));
    }

}