2013-03-17 43 views
9

ho la seguente stringa in C#:Sostituzione doppio apice con una sola citazione

string ptFirstName = tboxFirstName.Text; 

ptFirstName rendimenti: "John"

vorrei convertire questo 'John'

Ho provato numerose varianti di il seguente, ma non riesco mai a sostituire le doppie virgolette con virgolette singole:

ptFirstName.Replace("\"", "'"); 

Qualcuno può illuminarmi?

Il mio obiettivo è quello di scrivere questo in un file XML:

writer.WriteAttributeString("first",ptFirstName); // where ptFirstName is 'John' in single quotes. 
+0

1. 'Sostituisci' restituisce una * nuova * stringa 2. Perché lasciare andare i dati in' WriteAttributeString'? (Dovrebbe essere codificato "correttamente" in entrambi i casi.) –

+0

Questo perché ne ho bisogno in quel formato in una scheda SD che viene letto da un dispositivo che lo legge cercando virgolette singole - così è ... – user2058253

risposta

16

La ragione

ptFirstName.Replace("\"", "'"); 

non funziona è che string è immutabile. È necessario utilizzare

ptFirstName = ptFirstName.Replace("\"", "'"); 

invece. Ecco un demo on ideone.

1

Indovino che non hai inserito "John" nella casella di testo, ma solo John e stai vedendo le virgolette attorno alla stringa quando imposti un punto di interruzione e stai guardando la variabile in Visual Studio?

Se è così, rendersi conto che le virgolette non fanno parte della stringa, ma solo indicando che il valore è una stringa. Vengono aggiunti dal debugger. Se si dovesse fare:

Console.WriteLine(ptFirstName); 

non si vedrebbero le virgolette.

+0

Quindi penso di averlo correttamente convertito tutto il tempo. Eppure quando scrivo sul mio file xml e DESIDERO che il file xml mostri 'John' invece di "John" come nell'esempio seguente, faccio il trip up ... Quindi forse la mia domanda dovrebbe essere, come si scrive sul mio file xml usando writer.WriteAttributeString ("first", ptFirstName); e non finiscono con virgolette doppie? (Ho bisogno di questo perché la scheda SD in cui sto scrivendo è poi letta da un altro dispositivo che ha bisogno del formato di citazione singola ..) – user2058253

Problemi correlati