public static boolean validarEmail(String cadena){
      //comprueba que no empieze por punto o @;
      Pattern p = Pattern.compile("^\\.|^\\@");
      Matcher m = p.matcher(cadena);


      if (m.find())
         return true;
          //System.err.println("Las direcciones email no empiezan por punto o @");

      // comprueba que no empieze por www.

      p = Pattern.compile("^www.");
      m = p.matcher(cadena);
      if (m.find())
          return true;

      // comprueba que contenga @
      p = Pattern.compile("[@]");
      m = p.matcher(cadena);
      if (!m.find())
          return true;

      	//System.out.println("La cadena no tiene arroba");

      // comprueba que no contenga caracteres prohibidos
      p = Pattern.compile("[^A-Za-z0-9.@_-~#]");
      m = p.matcher(cadena);
      //StringBuffer sb = new StringBuffer();
      boolean resultado = m.find();
      boolean caracteresIlegales = false;

      if(resultado) {
         caracteresIlegales = true;
        return true;
      }
      else
          return false;
    }