View Full Version : [JAVA] For che riparte da solo - help
demonbl@ck
13-06-2010, 02:43
Ciao a tutti, ho scritto questo semplice codice che mi serve a elaborare alcune stringhe.
La situazione di partenza è che io ho un vettore di stringhe del tipo:
Robachemiserve<tab>altrarobachemiserve<spazio>robachenonmiserve
Il problema è che una volta arrivato alla fine del vettore, la i ritorna al valore iniziale senza motivo, e di conseguenza dato che nelle stringhe aggiornate lo spazio non c'è più, salta fuori una StringIndexOutOfBoundsException. E comunque se non succedesse andrebbe in loop.. Magical :doh:
Note: la parte di vettore da considerare è quella che va da 10 a NLM-1
ecco il codice:
String aux;
for(i=10;i<nlm;i++){
aux="";
j=0;
while(linkmu[i].charAt(j)!=' '){
aux=aux+linkmu[i].charAt(j);
j++;}
linkmu[i]=aux;
}
Any ideas? :help:
^TiGeRShArK^
13-06-2010, 09:20
Ciao a tutti, ho scritto questo semplice codice che mi serve a elaborare alcune stringhe.
La situazione di partenza è che io ho un vettore di stringhe del tipo:
Robachemiserve<tab>altrarobachemiserve<spazio>robachenonmiserve
Il problema è che una volta arrivato alla fine del vettore, la i ritorna al valore iniziale senza motivo, e di conseguenza dato che nelle stringhe aggiornate lo spazio non c'è più, salta fuori una StringIndexOutOfBoundsException. E comunque se non succedesse andrebbe in loop.. Magical :doh:
Note: la parte di vettore da considerare è quella che va da 10 a NLM-1
ecco il codice:
String aux;
for(i=10;i<nlm;i++){
aux="";
j=0;
while(linkmu[i].charAt(j)!=' '){
aux=aux+linkmu[i].charAt(j);
j++;}
linkmu[i]=aux;
}
Any ideas? :help:
ma fare qualcosa del genere tipo?
String toBeParsed = linkmu.substring(10, nlm - 1);
String result = toBeParsed.split(" ")[0];
:stordita:
demonbl@ck
13-06-2010, 14:08
ma fare qualcosa del genere tipo?
String toBeParsed = linkmu.substring(10, nlm - 1);
String result = toBeParsed.split(" ")[0];
:stordita:
uhm...
questo è sbagliato, lavora su una sola stringa non sul vettore
per farlo sul vettore dovrebbe essere una cosa del tipo
for(i=10;i<nlm;i++);{
String toParse = linkmu[i];
linkmu[i]=toParse.split(" ")[0];}
Volendo potrei anche farlo con uno StringTokenizer, però il punto è: perchè il ciclo riparte da solo?? :confused:
^TiGeRShArK^
13-06-2010, 15:44
uhm...
questo è sbagliato, lavora su una sola stringa non sul vettore
per farlo sul vettore dovrebbe essere una cosa del tipo
for(i=10;i<nlm;i++);{
String toParse = linkmu[i];
linkmu[i]=toParse.split(" ")[0];}
Volendo potrei anche farlo con uno StringTokenizer, però il punto è: perchè il ciclo riparte da solo?? :confused:
Ma chi ti ha detto che riparte da solo?
Se ti da una StringIndexOutOfBoundsException significa semplicemente che non ha trovato il carattere ' ' all'interno di una stringa che hai analizzato.
Comunque dovresti usare dei nomi decenti per le variabili perchè non si capisce una mazza in quel modo...
Infatti credevo che linkmu fosse una stringa e non mi ero accorto che era un vettore.
Edit: e comunque StringTokenizer è deprecato, il metodo giusto da usare è String.split
demonbl@ck
13-06-2010, 15:51
Ma chi ti ha detto che riparte da solo?
Se ti da una StringIndexOutOfBoundsException significa semplicemente che non ha trovato il carattere ' ' all'interno di una stringa che hai analizzato.
Comunque dovresti usare dei nomi decenti per le variabili perchè non si capisce una mazza in quel modo...
Infatti credevo che linkmu fosse una stringa e non mi ero accorto che era un vettore.
Edit: e comunque StringTokenizer è deprecato, il metodo giusto da usare è String.split
Come chi me lo ha detto, ho messo delle stampe di I e ho visto che dopo essere arrivato alla posizione giusta (111, la fine del vettore) riparte da capo, e dopo che è ripartito ovviamente il carattere ' ' non c'è perchè la stringa in posizione 10 era già stata processata prima, quindi mi da quell'errore...
^TiGeRShArK^
13-06-2010, 15:57
Come chi me lo ha detto, ho messo delle stampe di I e ho visto che dopo essere arrivato alla posizione giusta (111, la fine del vettore) riparte da capo, e dopo che è ripartito ovviamente il carattere ' ' non c'è perchè la stringa in posizione 10 era già stata processata prima, quindi mi da quell'errore...
quel codice da solo non può ripartire da capo, sei tu che lo stai eseguendo più volte.
Ma tipo usare il debug anzichè mettere le stampe no, eh? :mbe:
demonbl@ck
13-06-2010, 15:58
quel codice da solo non può ripartire da capo, sei tu che lo stai eseguendo più volte.
Ma tipo usare il debug anzichè mettere le stampe no, eh? :mbe:
Funzionasse lo userei...
Non funzionano gli watches, dovrei reinstallare netbeans.
E comunque no, non sono io che lo eseguo più volte :mbe:
EDIT:
Anzi sì, l'ho messo dentro a un altro ciclo per sbaglio :doh:
Risolto, grazie
^TiGeRShArK^
13-06-2010, 16:14
Funzionasse lo userei...
Non funzionano gli watches, dovrei reinstallare netbeans.
E comunque no, non sono io che lo eseguo più volte :mbe:
EDIT:
Anzi sì, l'ho messo dentro a un altro ciclo per sbaglio :doh:
Risolto, grazie
prego :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.