Devo modificare la stringa "C:\cartella\altracartella\" in "C:\\cartella\\altracartella\\".
Ho provato con Stringa.replaceAll("\","\\") ma mi dà problemi. Come posso fare?
Devo modificare la stringa "C:\cartella\altracartella\" in "C:\\cartella\\altracartella\\".
Ho provato con Stringa.replaceAll("\","\\") ma mi dà problemi. Come posso fare?
Hai 2 possibilità: o utilizzo il metodo replaceAll utilizzando come primo parametro una espressione regolare, oppure ti costruisci un codice a mano, come questo:
Ora in nuova hai la nuova stringa modificata.codice:String miaStringa = "C:\\cartella\\altracartella\\"; char [] tmp = miaStringa.toCharArray(); String nuova = ""; int indice = miaStringa.lastIndexOf("\\"); for (int i=0; i<tmp.length; i++) { if (tmp[i] == '\\') { nuova += "\\"; } nuova += tmp[i]; }
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
mi chiedo a cosa ti serva la variabile indice?!
Creatore di www.sistemacalcio.com e di www.sistemavolley.com
A nullaOriginariamente inviato da teuccio
mi chiedo a cosa ti serva la variabile indice?!
E' rimasta lì perchè mi sono dimenticato di toglierla da un codice precedente. :maLOL:
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
nelle stringhe
\
è un carattere di escape, per cui per cambiare tutte le "\" in "\\" dovrai fare il replaceAll di "\\" con "\\\\", credo![]()
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
ma poi ottengo c:\\\cartella (eccetera). Se provo a mettere "\\\" mi dà lo stesso errore di "\". Si può utilizzare il codice ASCII di "\"? Qualcuno mi sa dire qual è?Originariamente inviato da Andrea1979
nelle stringhe
\
è un carattere di escape, per cui per cambiare tutte le "\" in "\\" dovrai fare il replaceAll di "\\" con "\\\\", credo![]()
Purtroppo no: il primo parametro del metodo replaceAll() non è la stringa da cercare, ma l'espressione regolare che denota la stringa da cercare. Di conseguenza, questa istruzioneOriginariamente inviato da Andrea1979
nelle stringhe
\
è un carattere di escape, per cui per cambiare tutte le "\" in "\\" dovrai fare il replaceAll di "\\" con "\\\\", credo![]()
genera l'eccezione PatternSyntaxException, in quanto la stringa "\\" non denota una espressione regolare valida.codice:String nuova = miaStringa.replaceAll("\\", "\\\\");
Se la classe String prevedesse un metodo replaceAll() con la seguente firmaOriginariamente inviato da bobix78
ma poi ottengo c:\\\cartella (eccetera). Se provo a mettere "\\\" mi dà lo stesso errore di "\". Si può utilizzare il codice ASCII di "\"? Qualcuno mi sa dire qual è?
allora la soluzione proposta da Andrea1979 sarebbe corretta e non otterresti una stringa con 3 caratteri '\\', in quanto la prima servirebbe per quotare la seconda e Java interpreterebbe in modo corretto il carattere. Purtroppo tale metodo non esiste.codice:public String replaceAll(String oldString, String newString) oldString: La sottostringa da cercare newString: La sottostringa da sostituire a oldString
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ok, qui discuto del sesso degli angeli, ma siccome avevo due minuti, voilà
Aspettando con ansia una prossima release di Java che preveda il replaceAll di lelecodice:import java.io.File; public class stringSubs { static File f = new File("stringSubs.class"); static String dummy = f.getAbsolutePath(); public static String myReplaceAll(String a, String b) { String temp = dummy; int i = -2; while (i != -1) { i+=2; i = temp.indexOf(a, i); temp = (i != -1 ? temp.substring(0, i) + b + (i + 1 < temp.length() ? temp.substring(i+1) : "") : temp); } return temp; } public static void main(String args[]) { System.out.println(dummy); System.out.println(myReplaceAll("\\", "\\\\")); } }![]()
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
PS: Io non ne ho mai sentito il bisogno... anche perchè, come postato poco più su, me lo costruisco a mano, se voglio, un metodo simileOriginariamente inviato da Andrea1979
Aspettando con ansia una prossima release di Java che preveda il replaceAll di lele![]()
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza