Conversão de numeros para caracteres, como?

Pessoal, começei a programar agora e tenho dificuldade para terminar esse exercicio:

Elabore um programa que leia uma frase (uma String) e então reescreva-a de modo que quando houver uma vogal, escreva em seu lugar @. Mostre também a distribuição de frequências de cada uma das vogais com a quantidade de
ocorrências seguida de um histograma horizontal (imprimindo caracteres * na mesma quantidade das ocorrências).

o meu codigo fonte é esse:

[code]import java.util.Scanner;

public class exercicio1 {
Scanner teclado = new Scanner(System.in);

public static void main(String[] args) {
	Scanner teclado = new Scanner(System.in);
	char [] asterisco = { '*' };
	final char[] vogais = { 'a', 'e', 'i', 'o', 'u' };
	final char[] arroba = { '@' };
	int conta = 0, tam,conte = 0,conti = 0,conto = 0,contu = 0;

	String frase;

	System.out.print("Digite sua frase: ");

	frase = teclado.nextLine();

	tam = frase.length();

	char[] vt; // vetor da frase.
	vt = new char[tam];
	System.out.print("\nA frase digitada no vetor é: ");
	for (int i = 0; i < tam; i++) {
		vt[i] = frase.charAt(i);
		System.out.print(vt[i] + " ");
		
		if(vt[i]==vogais[0]){
			conta = conta + 1;
			}
			if(i==tam - 1){
				vt[i] = frase.charAt(i);
				asterisco =  new char [conta];
									
		System.out.println("\nQuantidade de A: "+ asterisco);
			}				
			if(vt[i]==vogais[1]){
				conte = conte + 1;
				}
				if(i==tam - 1){
			System.out.println("\nQuantidade de E: "+ conte);
				}
				
				if(vt[i]==vogais[2]){
					conti = conti + 1;
					}
					if(i==tam - 1){
				System.out.println("\nQuantidade de I: "+ conti);
					}
					
					if(vt[i]==vogais[3]){
						conto = conto + 1;
						}
						if(i==tam - 1){
					System.out.println("\nQuantidade de O: "+ conto);
						}
						
						if(vt[i]==vogais[4]){
							contu = contu + 1;
							}
							if(i==tam - 1){
						System.out.println("\nQuantidade de U: "+ contu);
							}
							
	}
	System.out.println("\nA nova frase e: ");
	System.out.println();
	for (int i = 0; i < tam; i++) {//rodar a frase
		for (int j = 0; j < 5; j++) {//verificar as vogais

			if (vt[i] == vogais[j]) {
				vt[i] = arroba[0];
			}
		}
		System.out.print(vt[i] + " ");
		
	}

}

}[/code]

Mas no lugar da contagem do numero, preciso que apareca asteriscos, como esta no enunciado pedindo.
Alguem tem alguma sugestão, de também quem sabe nao fazer por tantos ifs?

só falta a parte de asteriscos aqui… =D

não testei, então pode conter algum erro.

import java.util.Scanner;

public class exercicio1 {
	Scanner teclado = new Scanner(System.in);

	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);

		int conta = 0,conte = 0,conti = 0,conto = 0,contu = 0,contN = 0, tam;

		String frase;

		System.out.print("Digite sua frase: ");

		frase = teclado.nextLine();

		tam = frase.length();

		char[] vt; // vetor da frase.
		vt = new char[tam];
		System.out.print("\nA frase digitada no vetor é: ");
		for (int i = 0; i < tam; i++) {
			vt[i] = frase.charAt(i);
			System.out.print(vt[i] + " ");

			switch(vt[i]){
                            case 'a':
                                   conta++;
                                   break;
                            case 'e':
                                   conte++;
                                   break;
                            case 'i':
                                   conti++;
                                   break;
                            case 'o';
                                   conto++;
                                   break;
                            case 'u';
                                   contu++;
                                   break;
                            case '0':
                            case '1':
                            case '2':
                            case '3':
                            case '4':
                            case '5':
                            case '6':
                            case '7':
                            case '8':
                            case '9':
                                   contN++;
                                   break;
			}
								
		}
	        System.out.println("\nQuantidade de A: "+ conta);
		System.out.println("\nQuantidade de E: "+ conte);
		System.out.println("\nQuantidade de I: "+ conti);
	        System.out.println("\nQuantidade de O: "+ conto);
  	        System.out.println("\nQuantidade de U: "+ contu);
                System.out.println("\nQuantidade de Números: "+ contN);
		System.out.println("\nA nova frase e: ");
		System.out.println();
		for (int i = 0; i < tam; i++) {//rodar a frase
			switch(vt[i]){//verificar as vogais
                             case 'a':
                             case 'e':
                             case 'i':
                             case 'o':
                             case 'u':
				vt[i] = '@';
                                break;
			}
			System.out.print(vt[i] + " ");
			
		}

	}
}

Obrigado pela ajuda,
Mas na verdade, preciso que a quantidade de numero seja trocado por uma quantidade de asteriscos.
Realmente com switch fica melhor apresentado o codigo.
Ficaria assim:
Quantidade de A: ***
ou seja, tem 3 ‘as’.