Salve, devo sviluppare un metodo che ricerca una determinata frase all'interno di un testo molto più grande. Per esempi cerco la frase "andiamo a cenare" dentro una pagina di un libro. Ho sviluppato un metodo ma non è ottimale, potete consigliami come migliorarlo? o una metodo migliore?
codice:
public boolean cercaFrase(String testo,String frase){
StringTokenizer parolaTesto=new StringTokenizer(testo);
StringTokenizer parolaFrase=new StringTokenizer(frase);
boolean stato=false;
while(!stato||parolaTesto.hasMoreTokens()){
if(parolaTesto==parolaFrase){
parolaTesto.nextToken();
parolaFrase.nextToken();
if(!parolaFrase.hasMoreTokens())
stato=true;
}
parolaTesto.nextToken();
parolaFrase=new StringTokenizer(frase);
}
return stato;
}
se io lo testo con il main:
codice:
String testo="Come è andata la serata la pizza era la serata era buona";
System.out.println(testo);
String frase="la serata era";
System.out.println(frase);
boolean t=cnt.cercaFrase(testo, frase);
System.out.println(t);
mi stampa l'errore:
codice:
Come è andata la serata la pizza era la serata era buona
la serata era
Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(Unknown Source) at sviluppo.CercaNelTesto.cercaFrase(CercaNelTesto.java:22) at sviluppo.TestCercaNelTesto.main(TestCercaNelTesto.java:41)