![]() |
Pages (5): « 1 [2] 3 4 5 » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- [JAVA][HELP] Stringbuffer (http://www.dsy.it/forum/showthread.php?threadid=15736)
ehm.... sorry.....
a parte discorsi OT, ho provato il programma in una versione analoga alle vostre.
Non funziona.... mi dà errore "String Index out of range", qualsiasi valore dia all'indice del ciclo.
Ho provato a dare 0 e 1 con il ciclo in avanti, la lunghezza della stringa con il ciclo all'indietro... ho provato alcune modifiche, ma mi restituisce sempre lo stesso errore....
help?
thx
__________________
-- spammopoco --
forse sarebbe piu utile vedere il codice, almeno una porzione di codice...
__________________
http://www.twitter.com/0m4r
yes....
String s, st;
StringBuffer str;
int lungs, lungst, lung;
video.println();
video.println("Inserisci due stringhe:");
video.println();
video.println();
video.println("Inserisci la prima stringa");
s = key.readLine();
lungs = s.length();
video.println();
video.println("Inserisci la seconda stringa");
st = key.readLine();
lungst = st.length();
video.println();
video.println();
lung = lungs + lungst;
str = new StringBuffer(lung);
for (int i = 0 ; i < lungs ; i++)
str.setCharAt(i, s.charAt(i));
// for (int i = lungs ; i < lungst ; i++)
// str.setCharAt(i, st.charAt(i));
video.println("Stringa concatenata: "+str);
il codice, ovviamente è temporaneo, ma mi dà già errore nel primo ciclo su charAt (il secondo non andrebbe cmq... va ovviamente cambiato)
thx ![]()
__________________
-- spammopoco --
ho trovato l'errore.....
il costruttore di stringBuffer scritto in quel modo va in conflitto con charAt. Non ho idea del motivo, cmq adesso ho utilizzato il metodo setLength come avevi fatto tu e sembra funzionare.
Thx anyway

__________________
-- spammopoco --
Originally posted by zeus
ho trovato l'errore.....
il costruttore di stringBuffer scritto in quel modo va in conflitto con charAt. Non ho idea del motivo, cmq adesso ho utilizzato il metodo setLength come avevi fatto tu e sembra funzionare.
Thx anyway
![]()
__________________
http://www.twitter.com/0m4r
Idem ho avuto problemi anch'io nello scrivere il codice in quel modo.
Ho trovato molto comoda una situazione di questo tipo:
code:
String testo="Testo"; StringBuffer pippo= new StringBuffer(); for(int i=0;i<testo.length();i++){ pippo.setLength(i+1); pippo.setCharAt(i,testo.charAt(i)); }
__________________
http://www.poseidon-official.com
scusa, ma tu la lunghezza di pippo la conosci a priori dato che le due stringhe da concatenare sono inserite dall'utente prima del processo di concatenamento... quindi forse ha più senso settare pippo direttamente alla lunghezza che ti interessa no?
__________________
http://www.twitter.com/0m4r
Originally posted by 0m4r
scusa, ma tu la lunghezza di pippo la conosci a priori dato che le due stringhe da concatenare sono inserite dall'utente prima del processo di concatenamento... quindi forse ha più senso settare pippo direttamente alla lunghezza che ti interessa no?
__________________
http://www.poseidon-official.com
Originally posted by BodomChild
Beh per l'esercizio che chiedeva di concatenare le 2 stringhe sicuramente.Ho trovato comodo,invece, l'utilizzo di qel codice con il conteggio e verifica d'esistenza delle parole nell'array,dell'esericzio successivo e utilizzando sempre la stessa variabile pippo che si riempiva e cancellava ad ogni verifica, cosi si e' reso dinamico tutto il procedimento. Se settavo la lunghezza della parola a priori, avevo un eccezione alla fine.
In ogni caso, c'e' sempre piu' di una soluzione ad ogni problema. Basta essere sempre consapevole dell'esito.
__________________
http://www.twitter.com/0m4r
parlo dell'esercizio in cui tramite 2 array conti il numero di parole uguali nella stessa frase.
In pratica in poche parole riempio uno stringbuffer fin quando non trovo uno spazio o un punto o una virgola. Quando lo stringbuffer contiene la parola, vedo se esiste gia nell'array che contiene le parole. se esiste allora aggiungo +=1 all'array che tiene i contatori delle parole, se no aggiungo la parola nell'arayd delle parole. le posizioni dell'array tra parole e contatori sono uguali ad esempio: parole[3] contiene "ciao" contatore[3] conterra' il numero delle volte in cui "ciao" e' scritto nella frase.
Ovviamente lo stringbuffer e' uno e uno soltanto che finisce di riempirsi quando trova uno spazio o virgola o punto, e si svuota ogni volta che la parola esiste nell'array oppure viene aggiunta.
Spero di esser stato comprensibile.
notte notte
__________________
http://www.poseidon-official.com
wow i nuovi esercizi sono solo 2! un po' "stellari" ma sono 2!
__________________
MaIL-Me
__________________
ehm....
io ne vedo 3....

__________________
-- spammopoco --
Originally posted by zeus
ehm....
io ne vedo 3....
![]()
__________________
http://www.poseidon-official.com
sto diventando cieco....
Off-Topic:
![]()
![]()
__________________
-- spammopoco --
Scusate se rompo ancora le p....
Ho avuto un casino di problemi con StringBuffer.... ho svolto l'esercizio della stringa da convertire ma non funziona... continua a darmi errore IndexOutofBounds....
Io lascio il codice, se qualcuno mi sa dire qual'è l'errore gli sarei grato.
--------------------------------------------------------------------------------
ConsoleOutputManager video = new ConsoleOutputManager();
ConsoleInputManager key = new ConsoleInputManager();
char c;
String st;
StringBuffer s = new StringBuffer();
int lust;
video.println();
video.print("Inserisci una stringa");
st = key.readLine();
lust = st.length();
s.setLength(lust);
video.println();
for (int i = 0; i <= lust; i ++) {
c = st.charAt(i);
if (Character.isLowerCase(c)) {
Character.toUpperCas(c);
s.setCharAt(i,c);
} else {
Character.toLowerCase(c);
s.setCharAt(i,c);
}
}
video.println("Stringa cambiata: "+s);
video.println();
-----------------------------------------------------------------------------------
Ho provato a togliere setLength ma l'errore, pur con messaggio lievemente differente, appare ugualmente.
Help... thx
__________________
-- spammopoco --
| All times are GMT. The time now is 21:07. | Pages (5): « 1 [2] 3 4 5 » Show all 75 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.