Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    483
    Mammamia che casino :-)
    Ma adesso, come faccio ad inserirlo in java?

  2. #12
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    public class AnalizzatoreLessicale{
    private final static int s0=0;
    private final static int s1=1;
    private final static int s2=2;
    ...
    privete final static int sn=n;
    private int statoCorrente;

    public AnalizzatoreLessicale(){
    statoCorrente=s0;
    }

    privete boolean isStatoFinale(){
    return statoCorrente==statofinale;
    }

    private boolean handler(String n){
    boolean error=false;
    switch(statoCorrente){
    case s0:
    if(n.equals("nome")){
    statoCorrente=s1;
    }
    else{
    error=true;
    }
    case s1:
    if(n.equals(",(virgola)")){
    statoCorrente=s2;
    }
    else{
    error=true;
    }
    case s2:
    ...(sempre la solita solfa, basta guardare l'automa )

    public boolean isMember(String frase){
    StringTokenizer st=new StringTokenizer(frase);
    boolean error=false;
    while(st.hasMoreTokens()){
    String token=st.nextToken();
    error=handler(token);
    }
    if(!st.hasMoreTokens()&&error==false&&isFinalStatu s()==true){
    return true;
    }
    else{
    return false;
    }
    }

  3. #13
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    483
    ciao bob,
    sei stato veramente molto gentile, ma mi hanno detto che con le espressioni regolari si risolveva con 2 riche di codice :-)
    Lo sapevo che era impossibile.

    Grazie mille veramente,
    Francesco

  4. #14
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    483
    io pensavo che si potesse risolvere con queste 2 classi:

    <%@ page import="java.util.regex.Pattern"%>
    <%@ page import="java.util.regex.Matcher"%>

    ciao

  5. #15
    Basta anche una riga sola, dipende dal grado di sicurezza che vuoi. Se sei sicuro che la sottostringa "n. xxx" (dove xxx e' il numero...) compaia solo ed esclusivamente in quel punto del testo, ti basta usare la funzione replaceAll (ti ho segnalato l'altro thread in cui se n'e' parlato, in privato)
    Altrimenti usi le due classi che hai detto tu.
    Trovi parecchi esempi in questo sito da cui prendere spunto.
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  6. #16
    Dopotutto so' divertenti le regex...
    Eccoti un esempio. Sono sicuro che si possa fare di meglio:

    codice:
            String s = "Francesco, è nato ad Aversa, Il 20 aprile 1979 n. 789 perchè";
            s=s.replaceAll("(?i)[ ]+n. (\\d)+[ ]+"," ");
            System.out.println(s);
    La regex che fa il lavoro e': (?i)[ ]+n. (\\d)+[ ]+
    Cioe':

    codice:
    (?i)     - ignora maiuscolo/minuscolo
    [ ]+     - uno o piu' spazi
    n.       - (enne punto spazio)
    (\\d)+   - una o piu' cifre (la d sta per digits)
    [ ]+     - uno o piu' spazi
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  7. #17
    Piccola precisazione: replaceAll() sostituisce tutte le sottostringhe "n. xxx" che trova. Nel tuo caso immagino sia piu' conveniente utilizzare replaceFirst(), che sostituisce solo la prima!
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  8. #18
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    AHHHHHHH !!!!!!!!!
    mi date una mano.. mi son guardato tutto quanto ma con le regex non ce la sto facendo...

    devo fare uno split di stringa se incontro una spazio, tab o invio..

    vi prego... non ci capisco nulla...
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  9. #19
    codice:
            String stringa = "Prova1 prova2 prova3 \n Prova4 prova5 \t prova6 \t\nprova7";
            String stringhe[] = stringa.split ("[\\t\\n ]+");
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

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.