Ler caractere do teclado

2 respostas
Rooney

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:

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));
        }
    }
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

2 Respostas

renamed
Veja:
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

e

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));
	}
}
M

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);
Criado 21 de dezembro de 2009
Ultima resposta 21 de dez. de 2009
Respostas 2
Participantes 3