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)
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.
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)