|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2005
Città: Livorno
Messaggi: 442
|
[java String] sostituire, ho bisogno d'aiuto
allora, dovrei sostituire una stringa a un'altra, sovrascrivendo, a un preciso indice, per intenderci una cosa del genere
public String replace (String s2, int index) { .. return s1; } tipo: s1 = "ciao si ciao"; s2 = "no"; index = 5; s1.replace(s2, index); dopo il trattamento: s1--> "ciao no ciao" capito il mio problema? ![]() grazie a tutti quelli che mi risponderanno! ciao a tutti!!! |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
La classe StringBuffer invece ha il metodo: replace(int start, int end, String str) che sembra fare al caso tuo.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2005
Città: Livorno
Messaggi: 442
|
innanzi tutto ri-grazie. però ho un altro problema... allora:
tipo: s1 = "ciao si ciao"; s2 = "ciao"; index = 5; s1.replace(s2, index); dopo il trattamento: s1--> "ciao ciaoiao" io vorrei -->"ciao ciao ciao" allora in realtà io non vi ho detto tutto il problema, che è: date 3 stringe s1,s2,s3 sostituisci s3 a s2 ogni volta che s2 occorre in s1. che dite c'è un modo più furbo per farlo? ciaooo! |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
String s1 = "ciao no ciao"; String s2 = "no"; String s3 = "ciao"; String r = s1.replaceAll (s2, s3); // r = "ciao ciao ciao"
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2005
Città: Livorno
Messaggi: 442
|
grazie, non avevo notato il replace all nei metodi di String. ciaooooo!
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
e bada che il risultato della replace deve essere riassegnato alla variabile perche la replace ritorna una nuova stringa con le sostiuzioni effettuate, in quanto le stringhe sono non modificabili.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2005
Città: Livorno
Messaggi: 442
|
sisi, tipo:
s1 = s1.replaceAll(s2,s3); ora visto che sono in ballo... ![]() per rimpiazzare solo la PRIMA occorrenza di s2 in s1 con s3? e solo l'ULTIMA? grazie a tutti... ![]() ciao! |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Sep 2005
Città: Lecce - Milano
Messaggi: 128
|
s2.lastIndexOf(s3)
che restituisce l'indice della posizione dell'ultima occorrenza di s3 in s1. Conosciuto l'indice effettuare la sostituzione. Qui ci sono i metodi della classe String se può esserti d'aiuto.
__________________
*** La mia terra il Salento *** ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2005
Città: Livorno
Messaggi: 442
|
grazie a tutti, se vi può interessare ecco come ho risolto:
public String replace(String s1, String s2, String s3, int index) { StringBuffer sB = new StringBuffer(s1); sB = sB.delete(index, (index + s2.length())); sB = sB.insert(index, s3); s1 = sB.toString(); return s1; } public String inspectReplacingTrailing(String s1, String s2, String s3) { for (int tStart = s1.length() - s2.length() + 1; tStart > -1; tStart--) { if (s1.regionMatches(tStart, s2, 0, s2.length())) { s1 = this.replace(s1, s2, s3, tStart); break; } } return s1; } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:42.