Ler caractere do teclado

Olá pessoal meu problema é o seguinte, meu programa só lê o caractere a, e imprime na tela, como faço pra mudar esse código pra q ele possa ler qualquer caractere e imprimir?

aki ta meu código:

[code]import java.util.*;

public class Caractere{

public static void main (String args[]){

    Scanner t = new Scanner(System.in);
    TestaCaractere c = new TestaCaractere();

    int l;
    String caracte = "a";

    System.out.print("Qual a dimensao do quadrado de Asteriscos? ");
    l = t.nextInt();

    System.out.print("Qual o Caractere que é para aparecer? ");
    caracte = t.next(caracte);

    System.out.println("O seu quadrado eh esse: \n"+ c.quadradoDeAsteriscos(l, caracte));
    }
}[/code][code]public class TestaCaractere{

public String quadradoDeAsteriscos(int lado, String s){

    String ast = "";
    for (int i = 1; i <= lado; i++){
        for (int j = 1; j <= lado; j++){
            ast += s;

        }//fim do for
    }//fim do for
    return ast;
}//fim do metodo

}//fim da classe[/code]

Veja:

[code]public class TestaCaractere{

public String quadradoDeAsteriscos(int lado, String s){

    StringBuilder ast = new StringBuilder(); //mude essa linha
    for (int i = 1; i <= lado; i++){
        for (int j = 1; j <= lado; j++){
            ast.append(s); //mude essa linha

        }//fim do for
        ast.append("\n"); //acrescente essa linha
    }//fim do for
    return ast.toString(); //mude essa linha
}//fim do metodo

}//fim da classe[/code]

e

[code]public class Caractere {

public static void main(String args[]) {

	Scanner t = new Scanner(System.in);
	TestaCaractere c = new TestaCaractere();

	int l;
	// String caracte = "a"; //Remova essa linha

	System.out.print("Qual a dimensao do quadrado de Asteriscos? ");
	l = Integer.parseInt(t.nextLine()); // mude essa linha

	System.out.print("Qual o Caractere que é para aparecer? ");
	String caracte = t.nextLine(); // mude essa linha

	System.out.println("O seu quadrado eh esse: \n"	+ c.quadradoDeAsteriscos(l, caracte));
}

}[/code]

E se quiser melhorar um pouquinho mais a performance, crie um StringBuilder do tamanho máximo de caracteres. Isso evitará perda de tempo realocando mais espaço para ele.

StringBuilder ast = new StringBuilder(lado * s.lenght() + lado);