Scanner não esta atendendo minha necessidade

6 respostas
jayrmotta

clienteNovo.nome = src.next(); System.out.println("Digite o cpf do cliente:"); clienteNovo.cpf = src.next(); System.out.println("Digite o rg do cliente:"); clienteNovo.rg = src.next();

Quando chega nestas linhas, se eu coloco mais de uma palavra ele entende que eu quero pegar cada token que no caso o padrão é o " "(espaço) … entao se eu digito Joao josé safado ele pega Nome joao, Cpf josé e Rg safado =/

Que outra classe posso utilizar ao invés desta? de preferencia classe que ja venha na library default

6 Respostas

Mauricio_Linhares

Já tentou nextLine()?

jayrmotta

Aham, piora tudo… ele pula as 2 primeiras linhas sem eu sequer ter digitado nada oO

Mauricio_Linhares

Então o seu Java tá bixado, eu uso nextLine aqui e funciona perfeitamente.

jayrmotta

System.out.println("Digite o nome do cliente:"); clienteNovo.nome = src.nextLine(); System.out.println("Digite o cpf do cliente:"); clienteNovo.cpf = src.nextLine(); System.out.println("Digite o rg do cliente:"); clienteNovo.rg = src.nextLine();

Olha ai como fico com nextLine e o que aparece quando executo

->

Opções: contas, dados de clientes e funcionários
contas
O que deseja fazer? [add/del/nada]
add
Digite o nome do cliente:
Digite o cpf do cliente:

Para ali pra eu digitar … a primeira linha do nome pula diretão… e concerteza meu java esta normal ;D

Mauricio_Linhares

Como eu disse, o seu Java deve estar bixado. Meu código:

[code=java]public class TesteDeScanner {

public static void main(String[] args) {
	Scanner scanner = new Scanner( System.in );
	
	escreva( scanner, "nome" );
	escreva( scanner, "RG" );
	escreva( scanner, "CPF" );		
	
}

private static void escreva( Scanner scanner, String nome ) {
	String temp = null;
	
	System.out.println("Escreva seu " + nome);
	temp = scanner.nextLine();
	System.out.println();
	System.out.println( nome + " é -> " + temp );
	System.out.println();
}

}

E o resultado:

Escreva seu nome
maurício

nome é -> maurício

Escreva seu RG
2670055

RG é -> 2670055

Escreva seu CPF
1245678945613

CPF é -> 1245678945613
jayrmotta

Se você perceber, eu usei 3 nextLine() aninhandos, pode até ter sido isso que causou tal erro, mais ainda assim… não quis dizer que o Java esta “bixado” e sim que eu usei de maneira errada.

E obrigado por me dar um exemplo que eu possa me embasar pra solucionar meu problema :smiley:

Abraços ^^

Criado 7 de abril de 2008
Ultima resposta 7 de abr. de 2008
Respostas 6
Participantes 2