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 #.
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());
}
}
}
Spero che ti vada bene.
Ciao.