|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2007
Messaggi: 55
|
[Java] String.replace
Ma scusate non c'è un metodo che trova all'interno di una stringa una sottostringa e la sostituisce con un'altra?
cioè tipo : Codice:
String lin = "oggi sono stanco"; lin.replaceAll("stanco","forte"); Purtroppo però così non và perchè il metodo replaceAll vuole una regex come primo parametro. ps. "stanco" non è fisso quindi non posso fare un'equivalente regex dal momento che cambia a seconda di una variabile... |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
in java le stringhe son immutabili , quindi quando tu fai
Codice:
lin.replaceAll("stanco","forte"); devi fare cosi Codice:
String lin = "oggi sono stanco"; lin = lin.replaceAll("stanco","forte"); |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
replace(CharSequence target, CharSequence replacement) e String è-un CharSequence, quindi puoi passare 2 stringhe (che non hanno niente a che fare con le regex). (solo da Java 5 c'è questo replace)
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 13-03-2008 alle 11:11. |
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Oct 2007
Messaggi: 55
|
grazie ad entrambi,
ho usato la soluzione di vladix visto che comunque sto usando il jdk 1.4 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Ma vladix ha usato ancora replaceAll, che usa le regex.
![]() Lo temevo .... ![]() Ma si può ancora fare (con un minimo di "sbattimento"), facendo un piccolo metodo che sfrutta StringBuffer e i suoi metodi indexOf e replace.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
![]() Codice:
lin.replaceAll("stanco","forte"); |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
In quel caso specifico, certo che funziona.
HiroNakamura ha scritto: "stanco" non è fisso quindi non posso fare un'equivalente regex dal momento che cambia a seconda di una variabile... Se non si conosce a priori la stringa da cercare (e si presuppone che non sia una regex), non si può usare replaceAll così su 2 piedi.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:31.