Ir ao conteúdo
  • Cadastre-se
Elmo Laurenzoni Neto

Validando email

Recommended Posts

Boa Noite!

Estou com mais uma duvida em mais um exercicio de livro do Rui Rossi.

Tenho que informa o emial e realizar os seguite testes.

  • Não pode ter espaços
  • deve ter um, e somente um, símbolo de @
  • deve haver ao menos 2 caracteres antes de depois do sinal arroba

segue o meu codigo:

import javax.swing.JOptionPane;
public class Exercicio0702
{
 public static void main(String[] args)
 {
    String st = "Informe seu e-mail:";
    st = JOptionPane.showInputDialog(null,st);
    
    if (st.trim().length() == 0)
    {
        st = "Email invalido";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    
    if(st.indexOf("@") != 0 || st.indexOf("@") > 1)
    {
        st = "O e-mail deve conter pelo menos um sinal de @";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    
    
    if(st.substring(0,st.trim().indexOf(" ")).length() < 2 || st.substring(st.trim
().lastIndexOf(" ") + 1).length() < 2)
    {
        st = "O e-mail deve conter pelo menos 2 caracteres antes e depois do sinal de @";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    st = "Email valido: " + st;
    JOptionPane.showMessageDialog(null,st,"mensagem",1);
    System.exit(0);
 }
}

 

O programa roda ate no segundo if e para.

e bem parecido com o outro porém ja tem uns 2 dias que estou quebrando a cabeça com isso e cansado de procurar na internet algo sobre.

 

muito obrigado.

Editado por dif
inserir o código com o botão CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, concorda comigo que 1 é diferente de 0, certo?

O seu código faz com que a pessoa entre nesse if mesmo se o @ estiver correto.

 

Tente trocar:

if(st.indexOf("@") != 0 || st.indexOf("@") > 1)

por: 

if(st.indexOf("@") != 1)

Assim ele vai aceitar que se tiver menos que 1 @ está errado e também se tiver mais de 1.

Não sei se isso te ajuda muito mas vejo que nessa parte do código você deve mudar.

 

Espero ter ajudado.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou um pouco enferrujado em Java. Mas não seria mais sensato usar uma classe com expressão regular para testar?

LInk para leitura: http://howtodoinjava.com/regex/java-regex-validate-email-address/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Senhores, Boa noite!!

me desculpem a demora, mas tive alguns problemas com a minha internet e não tive tempo de responder assim q ela voltou ao normal.

Bom, fiz o teste indicado pelo amigo renenskstp, mas não obtive muitos resultado, no entando, muito obrigado pela ajuda..

E o site indicado por dif e de grande ajuda, porém, como estou seguindo a livro do Rui Rosse e ate então as ferramentas que possuo são somente estruturas de if e case, e o que foi passado ate agora no livro. Portanto só posso utilza-las...

 

Mas agradeço muito a ajuda e se tiverem mais alguma ideia. =)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×