Den mittleren Teil eines int's zurückgeben

Ich sitze schon seit Stunden an diesem Problem und komme einfach nicht weiter. Ich möchte von einer Zahl die Ziffern zurückgeben, die sich zwischen zwei Bounds befinden:

	private static int getMid(int num, int i, int j) {
		if (j - i <= 1) {
			return 0;
		}
		int n = (int) Math.log10(num) + 1;
		return num % (int) Math.pow(10, n - i - 1) / (int) Math.pow(10, n - (j - i));
	}

	public static void main(String[] args) {
		System.out.println(getMid(123456, 0, 5)); // prints 2345
		System.out.println(getMid(123456, 0, 3)); // prints 23
		System.out.println(getMid(123456, 1, 4)); // prints 3
	}

Als dritte Ausgabe erwarte ich 34, es kommt aber 3 zurück.

Btw. String darf nicht eigesetzt werden.

Ich hab das übrigens hinbekommen. Die Indexberechnung in Zeile 6 war falsch:

private static int getMid(int num, int i, int j) {
    if (j - i <= 1) {
        return 0;
    }
    int n = (int) Math.log10(num) + 1;
    return num % (int) Math.pow(10, n - i - 1) / (int) Math.pow(10, n - j);
}

Vielleicht könnte das für den ein oder anderen hilfreich sein, noch nicht auf StackOverflow zu finden…

@eagleeye @moderatoren Zeilennummern und Zeilenhighlights wäre sehr nice.