Newsgroup: it.comp.java
Titolo: replace su String

 
          Salve a tutti,
sto impazzendo, devo sostituire in una Stringa determinate parole con altre,
esempio:
String a="ciao #word1# come stai #word2#";
deve diventare
a="ciao #wordModificata1# come sta #wordModificata2#"
c'è un metodo tipo il replace ma invece che con il char con le stringhe ???
quale potrebbe essere altrimenti la procedura più semplice?
grazie a tutti
Federica
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Ciao,
credo tu possa usare String.replaceAll()
Grazie per l'attenzione,
Eta


okkio che replaceAll() funziona con le Regular Expression!! (RTFM)
-- 
  -- + Setaceous Pig + --
http://megadix.users.mcs2.netarray.com/
http://www.jroller.com/page/megadix/


Altrimenti prova usando l'accoppiata indexOf e subString:
String vecchia = "stringa #sostituire#  altraroba";
String daSostituire = "#sostituire#";
String sostituta ="sostituta";
int posizione = vecchia.indexOf(daSostituire);
int lunghezza = daSostituire.length();
String appoggio= vecchia.subString(0,posizione);
appoggio+=sostituta;
appoggio+=vecchia.substring(posizione+lunghezza,vecchia.length());
return appoggio;
Una cosa del genere dovrebbe funzionare ;)
--
Luca Mattei
JavaStaff.com Admin
http://www.javastaff.com
no...@javastaff.com
--
Perche' si uccidono le persone che hanno ucciso altre persone? Per
dimostrare che le persone non si debbono uccidere? (Norman Mailer).

Scusate non per essere insistente
ma perchè complicarsi tanto la vita quando usando replaceAll (che usa 
pure le espressioni regolari ma che si può applicare anche in questo 
caso) può ottenere esattamente quello che desidera??
Semplicemente:
String a="ciao Mario come stai Gianni";
a=a.replaceAll("Mario","Pippo");
System.out.println(a);
Risultato:
ciao Pippo come stai Gianni
Grazie per l'attenzione e scusate ancora.
Eta
federica ha scritto:


 
Perché nella vita reale devi operare su stringhe che non sono mai così 
semplici. Prova con
"Ciao sono (1)"
"Devo sostituire il carattere ^, come faccio ?"
"(0?^ììsa\\"
poi chiama pure Mario e Pippo per gli errori...


 
??? non ho capito cosa intendi...a parte avere l'impressione che ti stai 
arrabbiando...bhò forse mi sbaglio.
Ciao

 
Ma no, ma no... :)  <-- faccina
Intendo dire che in molti cadono nella trappola del replaceAll() 
credendo di poter sostituire letteralmente ogni stringa, ma nella realtà 
quotidiana di programmazione c'è sempre quel tot di casi particolari 
(fra l'1% e il 99%) che ti sputt##### l'applicazione (vedi sintassi 
espressioni regolari). Direi che se non sappiamo che tipo di stringhe 
deve trattare federica, e che deve fare quel tipo di sostituzioni 
letterali, allora la soluzione di NouS anche se apparentemente più 
"quick and dirty" è la migliore.
Ciao, e incazziamoci solo per le cattiverie del mondo ;)  <-- faccina


Ok capisco, concordo con la soluzione proposta da Nous,
ma ho pensato ad una soluzione semplice perchè a volte esistono anche i 
problemi semplici. Cmq l'importante è che Federica risolva il suo problema.
Ciao e grazie
Eta

 ha scritto nel messaggio news:2rt7h0F1eth70U1@uni-

Magari per risolvere in maniera semplice un problema semplice se ne creano
altri a catena:
per esempio, non so se è il caso, ma i matcher che usano le regex sono
inclusi solo dalla 1.4.2, magari Federica ha la 1.4.1.. (problema
diffusissimo!)
Poi, per carità, la soluzione sarebbe imparare le regex che sono
potentissime e sempre utili, ma se uno ha fretta..
