Salve ho un problemino che non riesco a risolvere spero che qualcuno mi aiuti
Questa classe mi permette di visualizzare le occorrenze di parole che si trovano in una frase, pero se io inserirsco una frase di 10 parole che contiene 5 occorrenze ad esempio formate da "ciao ciao ciao la la" mi restituisce solamente "ciao" mentre se cancello un "ciao" me li visualizza correttamente. Vorrei avere delle delucidazioni in merito perchè non riesco a capacitarmi di questo errore grazie.codice:import java.io.*; import java.util.Arrays; import java.util.StringTokenizer; public class Token { private String s; private InputStreamReader isr; private BufferedReader br; private String[] vp; private String[] vo; private boolean noccorrenza = false; private int num2 = 0; Token(){ s = ""; } public void acquisisciParola(){ try{ isr = new InputStreamReader(System.in); br = new BufferedReader(isr); s = br.readLine(); s = s.toLowerCase(); StringTokenizer st = new StringTokenizer(s); vp = new String[st.countTokens()]; if(st.countTokens()>100){ System.out.println("Hai superato il range massimo di 100 parole"); } else{ for(int i=0;i<vp.length;i++){ vp[i] = st.nextToken(); } } } catch(Exception e){ } Arrays.sort(vp); } public String visualizzaOccorrenza(){ String occorrenze=""; int numMax=0; for(int i=0;i<vp.length;i++){ int num=0; for(int j=1;j<vp.length;j++) if(vp[i].indexOf(vp[j]) == 0){ noccorrenza = true; num++; } if(num>numMax){ numMax=num; occorrenze=vp[i]; } else{ if(num==numMax){ occorrenze+=" "+vp[i]; } } } //if(noccorrenza){ /*StringTokenizer st = new StringTokenizer(occorrenze); vo = new String[st.countTokens()]; for(int i=0;i<vo.length;i++){ vo[i] = st.nextToken(); } for(int i=0;i<vo.length;i++){ System.out.println(i+1+" Occorrenza/e trovata"); System.out.println(vo[i]); }*/ //return occorrenze; /*} else{ System.out.println("Non ci sono occorrenza/e"); }*/ return occorrenze; } }

Rispondi quotando