Io ho realizzato un tokenizer, che fa al caso tuo. Basta che tu istanzi un oggetto di questa classe, che gli setti il separatore che vuoi e la stringa da parserizzare e poi, tramite l'uso combinato dei metodi hasMoreElements() e getNext() puoi ricavarti tutte le parole e/o frasi comprese fra il tuo separatore.
Nella classe ho incluso un driver di verifica: puioi testare subito la classe avviandola e vedrai apparire a video le parole racchiuse fra il separatore #.
Spero che ti vada bene.codice:public class MioTokenizer { private char separatore; private String stringa; private int posStart; private int posFine; public MioTokenizer() { separatore = ' '; posStart = posFine = 0; } public MioTokenizer(char separatore) { this.separatore = separatore; posStart = posFine = 0; } public MioTokenizer(String stringa) { this.stringa = stringa; separatore = ' '; posStart = posFine = 0; } public MioTokenizer(char separatore, String stringa) { this.separatore = separatore; this.stringa = stringa; posStart = posFine = 0; } public String getNext() { String token = null; if (hasMoreElements()) { int i = posFine + 1; boolean trovato = false; while ((i < stringa.length()) && !trovato) { if (stringa.charAt(i) == separatore) { trovato = true; } else { i++; } } if (trovato) { posStart = i; int j = posStart+1; boolean trovato2 = false; while ((j<stringa.length()) && !trovato2) { if (stringa.charAt(j) == separatore) { trovato2 = true; } posFine = j; j++; } token = (trovato2) ? stringa.substring(posStart+1, posFine) : stringa.substring(posStart+1, posFine+1); } } return token; } public void setStringa(String stringa) { this.stringa = stringa; posStart = posFine = 0; } public void setSeparatore(char separatore) { this.separatore = separatore; posStart = posFine = 0; } public boolean hasMoreElements() { boolean risposta = false; int i = posFine + 1; while (i<stringa.length() && !risposta) { if (stringa.charAt(i) == separatore) risposta = true; i++; } return risposta; } public static void main(String [] args) { String miaStringa = "Questa è la #stringa# da #tokenizzare# per vedere se #funziona#"; MioTokenizer mt = new MioTokenizer('#', miaStringa); while (mt.hasMoreElements()) { System.out.println(mt.getNext()); } } }
Ciao.![]()



Rispondi quotando