Autor Tema: [Java] Comprobar si un correo esta bien escrito o no: validación email  (Leído 35576 veces)

Sixtoex

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 87
    • Ver Perfil
Obviamente se le puede hacer muchas cosas mas, solo lo hice con el @, se podría hacer con el punto tambien :)

Código: [Seleccionar]
import javax.swing.JOptionPane;
public class Calculos_conMath {
 
public static void main(String[] args) {
    String correo = new String(JOptionPane.showInputDialog("Escribe su correo electronico"));
    int longitud = correo.length();
    char valor;
   
    for(char i = 0; i < longitud; i++)
    {
    valor = correo.charAt(i);
        if(valor == '@' && i == 0){
        System.out.println("El correo esta mal");
        break;
        }
    if(valor == '@')
    {
    System.out.println("Escribistes perfectamente el correo");
    break;
    }
    else if(i == longitud-1){
    System.out.println("El correo esta mal");
    break;
   
    }
   
   
      }

   }

}
« Última modificación: 17 de Noviembre 2014, 23:15 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #1 en: 14 de Noviembre 2014, 19:40 »
Hola, el código está bien pero que la clase se llame Calculos_conMath no tiene sentido ninguno (supongo que será un olvido :P:D

Sixtoex

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 87
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #2 en: 14 de Noviembre 2014, 19:48 »
Hola, el código está bien pero que la clase se llame Calculos_conMath no tiene sentido ninguno (supongo que será un olvido :P:D
Exactamente, siempre utilizo la misma clase propia para las pruebas...

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #3 en: 14 de Noviembre 2014, 20:08 »
 Hola Sixtoex!

Veo que tu programa trata de notificar al usuario cuando se escribe una dirección de correo electrónico de manera correcta o incorrecta, el criterio que has especificado para que el programa decida cuando esta bien o cuando esta mal se basa en el carácter '@' y como bien dices, has omitido otros criterios a tomar en cuenta para aumentar la eficiencia de tu programa, por ejemp: si el correo contiene o no un punto, si el correo contiene o no caracteres que en realidad no admite un correo, si el correo escrito es solo arrobas, donde por ejemp si le pasas el String " @@@@@@@" este te dice: "Escribistes perfectamente el correo" y muchos otros criterios que si no se toman en cuenta, podrían afectar la eficiencia de tu programa.

A la hora de diseñar un código, es preferible no omitir lo que es obvio presentara una deficiencia en nuestros programas, así los críticos que revisen tu código (en este caso yo)
se llevaran una buena impresión por ver un trabajo bien pensado y elaborado.

Aun tomando en cuenta que tu programa solo se basa en la presencia del carácter '@' en el String que indique el usuario, no puedo decir que tu programa funciona correctamente, ya que devuelve un dato erróneo ante un String "erróneo" como por ejemp: " @@@@@@@icuantas@massequieranincluir.com" donde el programa dice: "Escribistes perfectamente el correo".

En cuanto al código en si, me parece que el nombre de la clase no es un nombre apropiado. No has colocado un modificador de acceso (public, protected o private) a las variables de clase como es lo normal y según la situación.

Mis sugerencias: Rediseña el código de tu clase, tomando en cuenta las anteriores criticas constructivas para crear un programa mas eficiente.

Saludos!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

Sixtoex

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 87
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #4 en: 14 de Noviembre 2014, 20:16 »
Como me gusta hacer las cosas bien, en algunos minutos te hice esto:

Metodo: recibe como parámetro una dirección de e-mail y mediante una expresión regular y las clases Pattern y Matcher comprueban  si cumple con el patrón de la expresión regular dada para validar dicho e-mail:


 
Código: [Seleccionar]
/**
     * Valida si es correcta la dirección de correo electrónica dada.
     *@param email
     *@return true si es correcta o false si no lo es.
     */
    protected static boolean esEmailCorrecto(String email) {
       
        boolean valido = false;
       
        Pattern patronEmail = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)(\\.[A-Za-z]{2,})$");
   
        Matcher mEmail = patronEmail.matcher(email.toLowerCase());
        if (mEmail.matches()){
           valido = true; 
        }
        return valido;
    }

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #5 en: 14 de Noviembre 2014, 20:16 »
 Como que dos personas estábamos respondiendo un mismo tema a la vez  :o

Hola Mastermind! no es que yo contradiga tu respuesta, sino que soy un poquito exigente  ;D ;D

Saludos compañero!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

Sixtoex

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 87
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #6 en: 14 de Noviembre 2014, 20:19 »
Como que dos personas estábamos respondiendo un mismo tema a la vez  :o

Hola Mastermind! no es que yo contradiga tu respuesta, sino que soy un poquito exigente  ;D ;D

Saludos compañero!
Que te parece el nuevo código  ;D

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #7 en: 14 de Noviembre 2014, 20:59 »
 Le estoy pasando el String "correocorrecto@hotmail.com" que para mi es un mail correcto, pero me devuelve false, y no he conseguido que me devuelva true sin modificar el patrón, te a funcionado correctamente este metodo? estoy yo indicando como parámetro un "correoincorrecto@@hitmail.c0m" ?
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:[Java] Comprobar si un correo esta bien escrito o no
« Respuesta #8 en: 16 de Noviembre 2014, 16:30 »
Me parece bien ser exigente Jorge, así es como se llega a ser un master! Saludos!!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".