Estou fazendo um programa, tipo um site de relacionamento, mas estou tendo problemas na conversão.
Vou colocar em pedaço do eu já fiz.
//Uma classe para cadastropackageSite_relacionamento;publicclassCadastro{privateStringendereço;privatelongtelefone;publicvoidsetEndereço(Stringnovoendereço){return;}publicvoidsetTelefone(longnovotelefone){return;}}//Agora o metodo principalpackageSite_relacionamento;importjavax.swing.JOptionPane;publicclassPrincipal{publicstaticvoidmain(Stringargs[]){Cadastrocas;cas=newCadastro();cas.setEndereço(JOptionPane.showInputDialog("Digite seu endereço:"));cas.setTelefone(JOptionPane.showInputDialog("Digite seu telefone:"));//Aqui esta o problema, como converter de long para String?}}
JOptionPane.showInputDialog retorma uma string, no seu caso acho melhor vc passar o telefone para string, pois ele geralmente tem () ou -
Flw…
H
halflife1940
Muito obrigado Robisonsm, é exatamente isso.
Vou dar uma olhada no você sugeriu tinorberto, obrigado.
G
geraldo.vec
Olá, você poderia fazer algo assim:
String tel = JOptionPane.showInputDialog ("Digite seu telefone:");
if (tel != null) { //testa se é uma entrada válida
try {
cas.setTelefone(Long.parseLong(tel)); //converte String em long
} catch (NumberFormatException ex) { //se a entrada informada não puder ser convertida para um long
System.out.println("Não é um número válido");
}
}
H
halflife1940
geraldo.vec:
Olá, você poderia fazer algo assim:
String tel = JOptionPane.showInputDialog ("Digite seu telefone:");
if (tel != null) { //testa se é uma entrada válida
try {
cas.setTelefone(Long.parseLong(tel)); //converte String em long
} catch (NumberFormatException ex) { //se a entrada informada não puder ser convertida para um long
System.out.println("Não é um número válido");
}
}
Ainda não aprendi try e catch.
H
halflife1940
Bom dia,
Estou tendo mais algumas dúvidas, coloquei tudo que estou fazendo e tentei explicar com comentários.
Agredeço mais uma vez a ajuda de vocês.
packageSite_relacionamento;publicclassCadastro{privateStringnome;privateStringendereço;privatelongtelefone;privateStringlogin;privateStringsenha;privateStringemail;privatelongCPF;privateStringusuario;privatebooleanalterarsenha;publicvoidNome(Stringnovonome){System.out.println("Nome:");return;}publicvoidsetEndereço(Stringnovoendereço){return;}publicvoidsetTelefone(longnovotelefone){return;}publicvoidsetLogin(Stringnovologin){return;}publicvoidsenha(Stringsenha){System.out.println("Senha:");return;}publicvoidsetEmail(Stringnovoemail){return;}publicvoidCPF(longnovoCPF){System.out.println("Senha:");return;}publicvoidsetUsuario(StringnomeInicial,longCPFInicial){nome=nomeInicial;CPF=CPFInicial;}publicvoidsetalterarSenha(StringsenhaAntiga,StringsenhaNova){if(senhaAntiga!=senhaNova){senhaAntiga=senhaNova;}}//getterspublicStringgetEndereço(){returnendereço;}publiclonggetTelefone(){returntelefone;}publicStringgetLogin(){returnlogin;}publicStringgetEmail(){returnemail;}publicStringgetUsuario(){returnusuario;}publicbooleangetAlterarsenha(){returnalterarsenha;}}//Método PrincipalpackageSite_relacionamento;importjavax.swing.JOptionPane;publicclassPrincipal{publicstaticvoidmain(Stringargs[]){longtelefone;charcadastro,alterar;cadastro='s';Cadastrocas;cas=newCadastro();cadastro=JOptionPane.showInputDialog("Possui cadastro?").charAt(0);while(cadastro=='n'){cas.Nome(JOptionPane.showInputDialog("Digite seu nome:"));cas.setEndereço(JOptionPane.showInputDialog("Digite seu endereço:"));cas.setTelefone(Long.parseLong(JOptionPane.showInputDialog("Digite seu telefone:")));cas.setLogin(JOptionPane.showInputDialog("Digite um login:"));cas.senha(JOptionPane.showInputDialog("Digite uma senha com 4 letras:"));cas.setEmail(JOptionPane.showInputDialog("Digite seu email:"));cas.CPF(Long.parseLong(JOptionPane.showInputDialog("Digite seu CPF:")));}//Aqui esta o problema, não consigo chamar o método Usuário e não sei se posso colocar duas mensagens na mesma caixa de texto.cas.setUsuario(JOptionPane.showInputDialog("Digite seu Login (Nome)"+"senha (CPF)"));//O usuário digita a senha e o CPF para login e, em baixo,JOptionPane.showInputDialog("Deseja alterar senha?").charAt(0);//Pergunta se quer trocar a senha.switch(alterar){case's':cas.setalterarsenha(JOptionPane.showInputDialog("Digite senha nova:"));//Tem erro no setalterarSenha}System.out.println("Endereço"+cas.getEndereço()+"Telefone"+cas.getTelefone()+"Login"+cas.getLogin()+"Email"+cas.getEmail());}}
H
halflife1940
UP–
luistiagos
pq vc utiliza o telefone como um long? geralmente usa-se strings… ainda mais que o usuario geralemente vai usar uma mascara estilo ([telefone removido]… se quer mesmo usar long… antes de converter sua String para long vc deve retirar os caracteres especiais como exemplo () e -, retirar os espaços e validar para ver se o digitado é realmente um numero… para depois converte-lo… senão recebera um belo NumberFormatException
H
halflife1940
Então, foi passado um UML pelo professor, no qual, o telefone tem que ser long, vou fazer o que você falou, mas e quanto ao método que esta dando erro, você sabe por que?
H
halflife1940
Alguém pode me ajudar?
Não consigo continuar, pois dá erro.
Lucas182
Você não pode comparar String por == e !=. (a não ser que você queira perguntar a área da memória em que as 2 apontam).
tem que usar equals(String dois)
Tipo, no caso você quer
if(!senhaantiga.equals(senhanova)){}
H
halflife1940
Lucas182:
Você não pode comparar String por == e !=. (a não ser que você queira perguntar a área da memória em que as 2 apontam).
tem que usar equals(String dois)
Tipo, no caso você quer
if(!senhaantiga.equals(senhanova)){}
Já fiz essa correção.
Quanto a dúvida de chamar o método eu estava chamando apenas um, sendo que passei dois parâmetros. Eu fiz separado:
//Classe CadastropublicvoidsetUsuario(StringnomeInicial){nome=nomeInicial;}publicvoidsetUsuario(longCPFInicial){CPF=CPFInical;}//Classe principalCadastrocas;...cas.setUsuario(JOptionPane.showInputDialog("Digite seu login: "));cas.setUsuario(Long.parseLong(JOptionPane.showInputDialog("Digite sua senha:")));