Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Filtrare le mail contenute in un file

    Sto cercando di reallizzare un programma che dato un file di testo dove sono contenute anche delle email deve riconoscerle e scriverle in un altro file, una per riga e senza doppioni.

    I punti che ho seguito sono questi:
    1) scrivere un file con una parola per riga;
    2) poi un altro con le mail filtrate sempre una per riga;
    3) scrivere il codice per verificare se il file delle mail filtrate contiene dei doppioni (qui non so dove mettere le mani ) .

    (forse ho esagerato con la scrittura/lettura di file ma era l'unica soluzione che mi è passata per la testa )

    Il file .java potete prelevarlo da questo link: http://xoomer.alice.it/lazarescu/estraiEmail.java
    (ho posto il link perché cerco di aggiornarlo man mano che vado avanti con il codice)
    Questo file .java ha bisogno di un file "email.txt" contenente anche qualche e-mail per funzionare!

    P.S. Non conosco gran che questo linguaggio e di conseguenza accetto qualsiasi sugerimento per aumentare l'efficenza del programma ma anche idee per una visione più ampia.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    11
    Conosci il pacchetto regex?Ci sono metodi che ti permettono di fare delle ricerche su String
    cosi potrai prendere l'email contenute nei file e lavorarci sopra.I dati di lettura come sono inseriti?Se esite um delimitadore,potreisti usare il metodo della classe String split !!Dopo di che é facile fare il resto!Usa um Collection ,classe" HashSet "che non ti accetta doppioni,ma prima devi criare uma classe EMAIL e ridefinre hashCode ed equals!!
    Scusa per l italiano ma sono Brasiliano!!

  3. #3
    I dati contenuti nel file in ingresso "email.txt" sono del tutto casuali. Per quanto riguarda il pacchetto "regex" non lo conosco e sarei grato se mi potresti dire dove posso documentarmi a riguardo

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    11
    codice:
    public class NewClass2 {
    public static void main(String[] args) {
        
        Pattern p=Pattern.compile(".*@.*"); //1)
        Matcher m=p.matcher("arielmoreira@yahoo.com.br");//2)
         while(m.find()){
         System.out.println(" Trovato "+m.group());   
        }
        
        
    }
    }
    Allora nel 1 caso, inserisco una espressione regolare che esegue una ricerca speciale nella string ,ma la mia ricerca in questo caso é : .*@.*
    ma perche?Dunque se cerchi un 'email sicuramente tutti avranno almeno qualsiasi tipo di
    caracter seguiti dal "@" con ancora qualsiasi combianazione di caracter
    il metacacter "." vuol dire concatenazione,cio´é se hai varies String cosi:
    Italia,italia,caglia,maglia
    e usi= .*alia tutte le parole saranno inserite nel resultato finale!!Come puoi vedere
    sto dicendo TROVAMI TUTTE LE STRING CHE SONO COMPOSTE CON UNA STRING FINALE alia!!!
    dopo di che hai il "\\d"=che ti cerca i numeri
    "\\w"=che ti cerca un ander-score ou caracter ou numero
    "\\s"=lo spazio
    Spero aver chairito um pó!E scusa per il pessimo italiano,mas sono brasiliano!
    saluti!!
    sun certified java programmer 1.5-score 81%

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    11
    un esempio:In questo caso crio un file e inserisco alcuni email...
    il token in questo caso é il "\n" il token significa "delimitadore"
    grazie ad un altro metodo che si serve di espressioni regulari nella classse Scanner
    findIntLine(Pattern expression);posso mandare cercare quello che voglio.
    Appena leggo una linea inteira "readLine()" il risulato lo ritorno ad una string,cosi posso esaminare!
    codice:
    package javaapplication1;
    import java.io.*;
    import java.util.Scanner;
    import java.util.regex.*;
    /**
     *
     * @author fabio
     */
    public class NewClass2 {
    public static void main(String[] args)throws Exception {
        File f=new File("Italiaemail.txt");
       PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(new File(""))));
        pw.write("arielmoreira@yahoo.it");
        pw.write("Luccas@yahoo.it");
        pw.println();//será il nostro delimitadore!!
        pw.write("Mattiss@yahoo.ops");
        pw.flush();
    //adesso guarda dove l arquivo é stato creato
        BufferedReader bf=new BufferedReader(new FileReader(f));//apro il file!
        String espressione="";
        String email="";
        Scanner sc;
       while( (espressione=bf.readLine()) !=null){
          sc=new Scanner("espressione");
          email=sc.findInLine(".*@.*");
         System.out.println(" Trovato "+espressione);
       }
    
      }
    }
    Adesso bisogna vedere la cosa piu importante nel tuo problema,qual é il token separatore per poter leggere le string email!!!
    a presto!!
    sun certified java programmer 1.5-score 81%

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    11
    se te la cavi col l inglese guarda sta documentazione
    http://java.sun.com/j2se/1.4.2/docs/...e-summary.html
    sun certified java programmer 1.5-score 81%

  7. #7
    Grazie per le spiegazioni ed il materiale che mi hai fornito...nel frattempo ho risolto il problema con metodi rudimentali (cioè con il minimo delle mie conoscenze). Il link è questo: http://xoomer.alice.it/lazarescu/con...iDatabase.java

    Ora devo lavorare per quanto riguarda l'efficenza del programma con le nuovità citate da te (devo dire che è interessante ciò che hai proposto!)

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    11
    Figurati ,fai bene ad usare le conoscenze che hai!!!Anzi é meglio, perché é un ottimo esercio !
    saluti!
    sun certified java programmer 1.5-score 81%

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.