Problema c/ dado tipo Char

Não consigo fazer para o scanner ler um dado tipo Char e atribuir na variavel, qual metodo devo usar, tipo para string posso fazer

nome = entrada.nextLine();

se fosse um tipo Char como eu faria eu tentei fazer assim, mas nao existe o metodo parece

tipo = entrada.nextChar();

alguem pode me ajudar??

Você pode usar o método ‘charAt(0)’ que pega o primeiro caracter!

Que escroto!! Testei e não existe mesmo…

Acho que o jeito é usar String mesmo e fazer:

char c = entrada.next().charAt(0);

Ou algo assim…

eu fiz tipo assim

tipo = entrada.nextLine();
tipo = tipo.toUpperCase();
tipochar = tipo.charAt(0);

ae está dando o seguinte erro:

Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:558)
at Aplic.main(Aplic.java:26)

verifica se sua String é vazia antes:

tipo = entrada.nextLine();
if (!"".equals(tipo)) {
   tipo = tipo.toUpperCase();
   tipochar = tipo.charAt(0); 
} else {
   System.out.println("insira algo!");
}

flws

String tipo;

do {

    System.out.print("Digite um texto: ");
    tipo = entrada.nextLine();

} while (tipo.equals(""));

tipo = tipo.toUpperCase();
tipochar = tipo.charAt(0); 

[quote=peron]verifica se sua String é vazia antes:

tipo = entrada.nextLine();
if (!"".equals(tipo)) {
   tipo = tipo.toUpperCase();
   tipochar = tipo.charAt(0); 
} else {
   System.out.println("insira algo!");
}

flws[/quote]

realmente a string estava vazia mas nao entendo, cotinua vazia e aparece na tela insira algo, o código está assim

    System.out.printf("%s\n", "Digite o tipo da Passagem");
    System.out.printf("%s\n", " \"C\" para comum");
    System.out.printf("%s\n", " \"E\" para estudante");
    System.out.printf("%s\n", " \"I\" para idoso");
    
    System.out.println();
    tipo = entrada.nextLine();
    
    if (!"".equals(tipo)) {
        tipo = tipo.toUpperCase();
        tipochar = tipo.charAt(0); 
    } 
    else {
        System.out.println("insira algo!");
    }

mas se eu coloco logo abaixo do scanner outro
tipo = entrada.nextLine(); ele faz a leitura e atribui na variavel, pq será nao está fazendo a leitura, está pulando e indo pra outra instrução.

para que aquele ‘\n’??? Eu estou sem o JDK 5 aqui no trampo!

pra pular linha…

dãaaaa, pergunta idiota a minha. Foi mal.

normal…

mas entum…sabe pq pode nao estar executando o scanner…

normal…

mas entum…sabe pq pode nao estar executando o scanner…[/quote]
Normal o que?! Eu fazer pergunta idiota?? Eheheheh.

Cara eu não sei o que pode estar acontecendo. Tente substituir os ‘printf’ por System.out.println() (que na minha opinião, tem o mesmo resultado que o scanf e é mais prático - neste caso)