String

4 respostas
lstriker

Eu estou com problemas para declarar uma string e recebe-la no teclado. Já tentei utilizar "nome = scan.nextLine();" mas ele pula para a idade.. alguém poderia me ajudar?

import java.util.Scanner;
class ContaBanco

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

    String nome="Lixo", sobrenome="Lixo";
    Integer idade=0;
    Double saldo=0.0, saque=0.0, saldofinal=0.0, deposito=0.0;

        while(true)
        {
            System.out.println("1-Cadastro");
            System.out.println("2-Saque");
            System.out.println("3-Deposito");
            System.out.println("4-Consultar Saldo");
			System.out.println("9-Sair");
            System.out.println("Opcao:");
                int opcao = scan.nextInt();

                    switch(opcao)
                    {
                        case 1:
                            System.out.println("Digite o seu nome e sobrenome: \t");
                            nome = scan.next();
							sobrenome = scan.next();
                            System.out.println("Digite a sua idade: \t");
                            idade = scan.nextInt();
                            System.out.println("Digite o saldo atual de sua conta: \t");
                            saldo = scan.nextDouble();
                                break;

                        case 2:
							System.out.println("Qual a quantidade do saque?");
								saque = scan.nextDouble();
									if(saldo<=0.0){
									System.out.println("Saldo insuficiente!");
									}else if(saque>saldo){
                                        System.out.println("Voce nao tem a quantia suficiente para realizar o saque!");
									}else{
									saldofinal = saldo-saque;}
									saldo = saldofinal;
								break;
                        case 3:
                            System.out.println("Qual a quantidade do deposito?");
								deposito = scan.nextDouble();
									saldofinal = saldo + deposito;
									saldo = saldofinal;
								break;

                        case 4:
							System.out.println(nome+" "+sobrenome);
							System.out.println("Saldo atual: " +saldo);
                                break;


						case 9:
                            System.out.println("Aguarde um momento..");
                            System.exit(0);



                        default:
                            System.out.println("Opcao Invalida!");
                                break;
                    }
        }
    }
}

4 Respostas

fabiobp2000

Testei no eclipse e está rodando certo.

pmlm

Para ler do teclado deve usar somente o nextLine.

lstriker
import java.util.Scanner;  
class ContaBanco  
  
{  
    public static void main(String args[])  
    {  
    Scanner scan = new Scanner (System.in);  
  
    String nome="Lixo"; 
    Integer idade=0;  
    Double saldo=0.0, saque=0.0, saldofinal=0.0, deposito=0.0;  
  
        while(true)  
        {  
            System.out.println("1-Cadastro");  
            System.out.println("2-Saque");  
            System.out.println("3-Deposito");  
            System.out.println("4-Consultar Saldo");  
            System.out.println("9-Sair");  
            System.out.println("Opcao:");  
                int opcao = scan.nextInt();  
  
                    switch(opcao)  
                    {  
                        case 1:  
                            System.out.println("Digite o seu nome e sobrenome: \t");  
                            nome = scan.nextLine();   
                            System.out.println("Digite a sua idade: \t");  
                            idade = scan.nextInt();  
                            System.out.println("Digite o saldo atual de sua conta: \t");  
                            saldo = scan.nextDouble();  
                                break;  
  
                        case 2:  
                            System.out.println("Qual a quantidade do saque?");  
                                saque = scan.nextDouble();  
                                    if(saldo<=0.0){  
                                    System.out.println("Saldo insuficiente!");  
                                    }else if(saque>saldo){  
                                        System.out.println("Voce nao tem a quantia suficiente para realizar o saque!");  
                                    }else{  
                                    saldofinal = saldo-saque;}  
                                    saldo = saldofinal;  
                                break;  
                        case 3:  
                            System.out.println("Qual a quantidade do deposito?");  
                                deposito = scan.nextDouble();  
                                    saldofinal = saldo + deposito;  
                                    saldo = saldofinal;  
                                break;  
  
                        case 4:  
                            System.out.println(nome+" "+sobrenome);  
                            System.out.println("Saldo atual: " +saldo);  
                                break;  
  
  
                        case 9:  
                            System.out.println("Aguarde um momento..");  
                            System.exit(0);  
  
  
  
                        default:  
                            System.out.println("Opcao Invalida!");  
                                break;  
                    }  
        }  
    }  
}

Esse código eu só coloquei o nextLine (que eu já havia tentado), mas não sei por que ele da bug. E no primeiro codigo que eu postei, se eu tentasse colocar mais de dois "nome e sobrenome" dava pau. Ex: [color=green]"Leonardo Medeiros"[/color] [color=red]"Leonardo Medeiros Gutembergue"[/color]

B

next, nextInt, nextDouble, não servem para ler do teclado a partir de um prompt. Use somente nextLine, e converta a string para o tipo que quiser.

Criado 15 de março de 2013
Ultima resposta 16 de mar. de 2013
Respostas 4
Participantes 4