Não consigo transformar 10 em 0

Bom dia galera,
sou nova neste negócio de programação em java e estou fazendo uns exercícios. Travei em um que pede para criptografar um número com quatro digitos inserido e devolve-lo sendo que será somado 1 a cada termo do numero. Além disso, caso o número seja 9, ao somar mais um, deve ser devolvido o número zero. Por exemplo: inseri 9091 deve ser devolvido 0102. Consegui fazer a lógica do programa, mas não consigo fazer essa parte quando é 9 para virar zero. Abaixo está o que já fiz até agora.

import java.util.*;

public class EP1_7 {

public static void main (String [] args) {
int num, unidade, dezena, centena, milhar;
Scanner leitor = new Scanner (System.in);
num = leitor.nextInt();
unidade = (num % 10) + 1;
if (unidade == 10);
unidade = 0;
num /= 10;
dezena = (num % 10) + 1;
if (dezena == 10);
dezena = 0;
num /= 10;
centena = (num % 10) + 1;
if (centena == 10);
centena = 0;
num /= 10;
milhar = (num + 1);
if (milhar == 10);
milhar = 0;

System.out.println ("" +milhar+centena+dezena+unidade);
}

}

O que está faltando é você pensar de forma mais matemática.

Esse código aqui fiz quando estava na faculdade e serve mais ou menos para o mesmo propósito. Você precisa entender ele se quiser resolver seu problema, mas te adianto que copiar ele e tentar entregar para o seu professor só vai fazer com que você tome uma bronca. Eu tenho plena certeza em afirmar que os conceitos que você vai ver não foram ensinados ainda para você, então tente aprender com o código ao invés de apenas copiar.

public class Foo {

    public static void main(String[] args) {
        int num, unidade, dezena, centena, milhar;
        Scanner scanner = new Scanner(System.in);
        num = scanner.nextInt();

        milhar = (num / 1000);
        centena = (num % 1000) / 100;
        dezena = (num % 1000) % 100 / 10;
        unidade = (num % 1000) % 100 % 10;

        milhar = milhar == 9 ? 0 : milhar + 1;
        centena = centena == 9 ? 0 : centena + 1;
        dezena = dezena == 9 ? 0 : dezena + 1;
        unidade = unidade == 9 ? 0 : unidade + 1;

        System.out.println("Número criptografado: " + milhar + centena + dezena + unidade);
    }

}

E digo mais: Esse código tá bem mal-otimizado. Tem como deixar ele muito melhor, hein!