Java - Problema con el filtrado de mails.

 
Vista:

Problema con el filtrado de mails.

Publicado por Diego Sedeño (3 intervenciones) el 11/02/2019 16:07:39
Hola buenas tardes, no se porque pero no soy capaz de poder filtrar de este txt, unos emails. Los emails estan escritos en este formato.
[email protected],,,,,,4,1
[email protected],,,,,,4,1
[email protected],,,,,,4,1
[email protected],,,,,,4,1
[email protected],,,,,,,,,,4,1
Lo que intento hacer es un programa que me recorra el txt, filtrando directamente los emails sin tener que hacerlo a mano. El mail siempre esta en la posición cero y finaliza con una coma, el numero de comas varia dependiendo de la linea. He desarrollado este programa, el cual me filtra los resultados, pero solo me filtra los 10 primeros, Si me podéis ayudar os lo agradezco compañeros. Muchas gracias.

package aplicacionEmails;

import java.io.File;
import java.util.Scanner;

public class FiltradoEmails {
public static void main(String[] args) {

File fichero=new File("C:\\Users\\informatica3\\Desktop\\LecturaEmails.txt");
Scanner s= null;
try {
s=new Scanner(fichero);
while(s.hasNext()) {
String linea=s.nextLine();
System.out.println(linea.substring(0,linea.indexOf(",")));//aquí realizo el filtro desde la posición cero hasta una coma.

}
} catch (Exception e) {
// TODO: handle exception
}



}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de SuprIndio
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problema con el filtrado de mails.

Publicado por SuprIndio (12 intervenciones) el 11/02/2019 17:16:37
Proba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//////////////////////////////////////////////////////////////////////
// Hola buenas tardes, no se porque pero no soy capaz de poder filtrar de
// este txt, unos emails. Los emails estan escritos en este formato.
// email1@gmail.com,,,,,,4,1
// email2@gmail.com,,,,,,4,1
// email3@gmail.com,,,,,,4,1
// email4@gmail.com,,,,,,4,1
// email5@gmail.com,,,,,,,,,,4,1
// Lo que intento hacer es un programa que me recorra el txt, filtrando
// directamente los emails sin tener que hacerlo a mano.
// El mail siempre esta en la posición cero y finaliza con una coma,
// el numero de comas varia dependiendo de la linea.
// He desarrollado este programa, el cual me filtra los resultados,
// pero solo me filtra los 10 primeros, Si me podéis ayudar os lo
// agradezco compañeros. Muchas gracias.
//
//////////////////////////////////////////////////////////////////////
//
// javac archivo.java
// java  archivo.class
//////////////////////////////////////////////////////////////////////
 
import java.io.*;
public class archivo {
 
    public static void main(String[] args) {
          leer();
    }
    public static void leer() {
 
          String ccMail     = null;
          Integer inPos     = 0;
          File archivo      = null;
          FileReader fr     = null;
 
          BufferedReader br = null;
          try {
                archivo = new File ("archivo.txt");
                fr = new FileReader (archivo);
                br = new BufferedReader(fr);
 
                System.out.println("Leyendo el contendio del archivo.txt");
                String linea;
                while((linea=br.readLine())!=null) {
                      //
                      /////////////////////////////////////////////////////
                      // System.out.println(linea);
                      // indexOf() method call returns the index
                      // within this string of the first occurrence
                      // of the String passed as the argument.
                      /////////////////////////////////////////////////////
                      // System.out.println("indexOf():" + sb.IndexOf(","));
                      //
                      inPos = linea.indexOf(",");
                      if ( inPos > 0 ) {
                           ccMail = linea.substring(0,inPos);
                           System.out.println("Mail: " + ccMail);
                      }
                }
          }
          catch(Exception e) {
                e.printStackTrace();
          } finally {
               // En el finally cerramos el fichero, para asegurarnos
               // que se cierra tanto si todo va bien como si salta
               // una excepcion.
               try {
                  if ( null != fr ) {
                       fr.close();
                  }
               } catch ( Exception e2 ) {
                        e2.printStackTrace();
               }
          }
    }
}
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problema con el filtrado de mails.

Publicado por Billy Joel (876 intervenciones) el 11/02/2019 23:31:04
jejeje ese substring me parece conocido
He copiado tu código y lo he corrido sin ningún problema. No entiendo cual problema tienes pero supongo que lo que quieres es extraer los emails.

emails

Hice algunas modificaciones para recoger los emails en un arrayList y luego imprimir.
Te dejo código acá:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
 
public class FiltradoEmails {
 
    public static void main(String[] args) {
 
        File fichero = new File("C:\\Users\\informatica3\\Desktop\\LecturaEmails.txt");
        List<String> mails = new ArrayList();
        Scanner s;
        try {
            s = new Scanner(fichero);
            while (s.hasNext()) {
                String linea = s.nextLine();
                //System.out.println(linea.substring(0, linea.indexOf(",")));//aquí realizo el filtro desde la posición cero hasta una coma.
                mails.add(linea.substring(0, linea.indexOf(",")));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace(System.out);
        }
 
/ /        System.out.println("Recorremos los mails #1");
//        mails.forEach(mail->{
//            System.out.println("mail: " + mail);
//        });
 
//        System.out.println("Recorremos los mails #2");
//        for(String mail : mails){
//            System.out.println("mail: " + mail);
//        }
 
        System.out.println("Recorremos los mails #3");
        for (int i = 0; i < mails.size(); i++) {
            System.out.println("mail "+i+": " + mails.get(i));
        }
    }
}

Cualquier duda avisa
Saludos!!
;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar