Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142

    [Java]Problema con indexOf()

    Salve a tutti avrei un problemino con un programma che sto scrivendo spero che possiate aiutarmi...in pratica non riesco a far avanzare l indice dell indexOf() su un vettore. Io ho un vettore che contiene delle parole e devo trovare le occorrenze solo che in questa maniera riesco a trovare solo la prima occorrenza e poi, vorrei sapere un modo per far avanzare l indice dell indexOf() grazie.

    ecco il codice:

    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;
    	
    	
    	Token(){
    	  s = "";
    	}
    	
        public void acquisisciParola(){
        	try{
              isr = new InputStreamReader(System.in);
              br = new BufferedReader(isr);
              s = br.readLine();
              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<s.length();i++){
                  vp[i] = st.nextToken();	
                }
              }
        	}
        	catch(Exception e){
        	}
        	Arrays.sort(vp);
        }
        public String visualizzaOccorrenza(){
        	int j = 1;
        	for(int i=0;i<vp.length;i++){
        		if(vp[i].indexOf(vp[j]) != -1){
        			j++;
        			return vp[i];	
        		}  
        	}  
        	return "";
        }
        
    }
    codice:
    public class UsaVettore {
    	public static void main(String[] args) {
    		Token t = new Token();
    		
    		t.acquisisciParola();
    		System.out.println(t.visualizzaOccorrenza());
    	}
    
    }

  2. #2
    Ti si ferma perche fai return vp[i]; appena trova qualcosa. Quindi il ciclo for non finisce e ti esce dal metodo.

    Poi comunque non è molto chiaro cosa vuoi fare, vuoi le occorrenze di cosa?
    Cosa intendi per occorrenza?

    Forse vuoi sapere quante volte è ripetuta o contenuta una data parola nel vettore di parole che hai?
    Spiega meglio che cosi non si capisce.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    inserendo da tastiera una frase voglio visualizzate le parole che sono ripetute es. "Ciao mi chiamo peppe ciao la casa è la piu bella", voglio visualizzate le parole "ciao" e "la".

  4. #4
    Una cosa cosi insomma
    codice:
     public String visualizzaOccorrenza(){
        	int numMax=0;
        	String occorrenze="";
        	for(int i=0;i<vp.length;i++){
        		int num=0;
        		 for(int j=i;j<vp.length;j++){
        			 if(vp[i].indexOf(vp[j]) == 0){
        				 num++;
        			 }
        		 }
        		 if(num>numMax){
        			 numMax=num;
        			 occorrenze=vp[i];
        		 }else if(num==numMax){
        			 occorrenze+=" "+vp[i];
        		 }
        		 
        	}  
        	return occorrenze;
        }
    Ho notato anche altri due errorini
    codice:
    public void acquisisciParola(){
        	try{
              isr = new InputStreamReader(System.in);
              br = new BufferedReader(isr);
              s = br.readLine();
              
              //s.toLowerCase();
              //questa funzione non fa nulla.... al massimo sarà
              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<s.length();i++){
                //s,.enght() ??? cosa c'entra la lunghezza della stringa se scorri il vettore?
                for(int i=0;i<vp.length;i++){
                  vp[i] = st.nextToken();	
                }
              }
        	}
        	catch(Exception e){
        	}
        	Arrays.sort(vp);
        }

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    grazie per avermi aiutato mi hai anche fatto accorgere di alcuni errori che mi erano sfuggiti grazie

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.