2013-10-10 32 views
11

Ho string variabile strVar con valore come ' "value1" ' e voglio sostituire tutte le doppie virgolette nel valore con ' \" '. Quindi dopo il valore di sostituzione sembrerebbe ' \"value1\" 'come sostituire "(virgolette doppie) in una stringa con " in java

Come fare questo in java? Gentilmente aiutami.

+0

funziona il vostro codice di compilazione? è ''" valore1 "'' cosa vedi nel codice sorgente o cosa vedi quando lo stampi? –

risposta

29

Siete alla ricerca di

strVar = strVar.replace("\"", "\\\"") 

DEMO

vorrei evitare di usare replaceAll in quanto utilizza la sintassi regex nella descrizione di cosa sostituire e come sostituire, il che significa che \ dovranno essere sfuggito nella stringa "\\" ma anche nella regex \\ (deve essere scritto come "\\\\" string), il che significa che avremmo bisogno di usare

replaceAll("\"", "\\\\\""); 

o probabilmente po 'più pulito:

replaceAll("\"", Matcher.quoteReplacement("\\\"")) 

Con replace abbiamo fuga meccanismo aggiunto automaticamente.

+1

@ManuelM. Dovrebbe funzionare bene. –

+0

l'ho mescolato con replaceFirst ^^ –

0

Le stringhe sono formattate con virgolette doppie. Quello che hai sono citazioni singole, usate per char s. Quello che vuoi è questo:

String foo = " \"bar\" ";

5

in realtà è: strVar.replaceAll("\"", "\\\\\"");

0

Questo dovrebbe dare ciò che si vuole;

System.out.println("'\\\" value1 \\\"'"); 
0

Per sostituire le virgolette

str=change condition to"or"  

str=str.replace("\"", "\\""); 

Dopo la sostituzione: il cambiamento condizione \ "o \"

Per sostituire le virgolette singole

str=change condition to'or'  

str=str.replace("\'", "\\'"); 

Dopo la sostituzione : cambio co ndition a \ 'o \'

3

Per esempio prendere una stringa che ha struttura come questa --- >>>

String obj = "hello"How are"you"; 

E si desidera sostituire tutte le virgolette con un valore vuoto o in altre parole, se vuoi tagliare tutte le doppie virgolette.

Basta fare come questo,

String new_obj= obj.replaceAll("\"", ""); 
Problemi correlati