Alguem pode dar uma ajuda???
http://www.guj.com.br/posts/list/77982.java
Vlwwwws
Alguem sabe me dizer como resolver o problema do código abaixo, sem gambiarra?
O nextInt() está recebendo um 'enter' e o método nextLine() recebe e interpreta este 'enter'.
Uma gambiarra para resolver foi:
String lixo;
lixo = leitor.nextLine();
Se eu utilizar o metodo next() e escrever nome e sobrenome, o espaço será intepretado e excluira o sobrenome.
import java.util.Scanner;
public class FuncionarioTestDrive {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
Funcionario func = new Funcionario(0, 0, "");
System.out.print("Digite o codigo do funcionario: ");
func.setCodigo(leitor.nextInt());
System.out.print("Digite agora o fone do funcionario: ");
func.setFone(leitor.nextInt());
String lixo;
lixo = leitor.nextLine();
System.out.print("Digite agora o nome do funcionario: ");
func.setNome(leitor.nextLine());
System.out.println("Agora, vamos exibir as informacoes do funcionario");
System.out.println("");
func.mostraInfo();
System.out.println("Fim!\n");
}
}
--------------------
public class Funcionario {
/*
* Variaveis de instancia
*/
private int codigo;
private int fone;
private String nome;
/**
* Construtor da classe Funcionario
* @param novoCodigo, novoFone, novoNome Os novos atributos do funcionario
*/
public Funcionario(int novoCodigo, int novoFone, String novoNome) {
codigo = novoCodigo;
fone = novoFone;
nome = novoNome;
}
/**
* Metodo acessador de codigo
* @return codigo O codigo do funcionario
*/
public int getCodigo() {
return codigo;
}
/**
* Metodo acessador de fone
* @return fone O fone do funcionario
*/
public int getFone() {
return fone;
}
/**
* Metodo acessador de nome
* @return nome O nome do funcionario
*/
public String getNome() {
return nome;
}
/**
* Metodo modificador de codigo
* @param novoCodigo O novo codigo do funcionario
*/
public void setCodigo(int novoCodigo) {
codigo = novoCodigo;
}
/**
* Metodo modificador de fone
* @param novoFone O novo fone do funcionario
*/
public void setFone(int novoFone) {
fone = novoFone;
}
/**
* Metodo modificar de nome
* @param novoNome O novo nome do funcionario
*/
public void setNome(String novoNome) {
nome = novoNome;
}
/**
* Metodo que vai mostrar as informacoes do funcionario
*/
public void mostraInfo() {
System.out.println("Funcionario " + codigo);
System.out.println();
System.out.println("Nome: " + nome);
System.out.println();
System.out.println("Fone: " + fone);
System.out.println("");
}
}
vou dar uma olhada e ja posto o resultado
tenta usar assim
public static void main(String[] args) {
int codigo = 0;
int fone = 0;
String nome = "";
Scanner leitor = new Scanner(System.in);
Funcionario func = new Funcionario(0, 0, "");
System.out.print("Digite o codigo do funcionario: ");
codigo = leitor.nextInt();
//func.setCodigo(leitor.nextInt());
System.out.print("Digite agora o fone do funcionario: ");
fone = leitor.nextInt();
//func.setFone(leitor.nextInt());
System.out.print("Digite agora o nome do funcionario: ");
nome = leitor.nextLine();
//func.setNome(leitor.nextLine());
System.out.println("Agora, vamos exibir as informacoes do funcionario");
System.out.println("");
func.setCodigo(codigo);
func.setFone(fone);
func.setNome(nome);
func.mostraInfo();
System.out.println("Fim!\n");
}
me avisa o resultado
abraços
Então o problema foi ‘resolvido’, mas trata-se de um BUG não corrigido.
http://www.guj.com.br/posts/list/77982.java
e a solução é a que mostrei abaixo msm:
String lixo;
lixo = leitor.nextLine();
Tem até um topico do forum da Sun…
http://forum.java.sun.com/thread.jspa?threadID=718569&messageID=4148209
Abraços