2010-03-02 19 views
6

Scommetto che è una domanda facile per te, ma cercare SO o Google con { o } nella stringa di ricerca non funziona molto bene.
Quindi, diciamo che voglio produrre {Hello World}, come faccio a farlo usando string.format(...)?Output '{' or '}' con string.format (...)

Edit:
assomiglia a questo:

string hello = "Hello World"; 
string.format("{0}", '{' + hello + '}'); 

sarebbe fare il lavoro, ma che non sembra molto elegante per me. C'è un modo per sfuggire a questi personaggi all'interno della stringa di formato?

+0

Scorrere verso il basso, la tua domanda è già stata data risposta. – Rory

+0

pazienza .. ottieni il tuo upvote e la risposta giusta abbastanza presto –

+0

Scusa, pensavo che non l'avessi notato perché la modifica arrivava quasi 8 minuti dopo la risposta. – Rory

risposta

13

Utilizzare {{ e }}. Quindi il tuo esempio sarebbe string.Format("{{Hello World}}");

+0

Questo sembra essere simile alla convenzione printf in C++, usando %% se si desidera una% nell'output. Qualche ragione per cui non hanno usato il carattere di escape backslash (che è usato in C++ per sfuggire a virgolette, virgolette, backslash, ...)? Solo curioso. – Patrick

+1

@Patrick: Sembra che sia perché * già * abbia un uso in quel contesto: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SpecifierEscape –

+1

@Patrick: probabilmente per indurre confusione di massa e panico. Seriamente, non ne sono sicuro, ma dovresti usare più backslash o finirebbe come escape di un personaggio ("\ {" fornisce un errore del compilatore perché non è un escape valido, "\\" restituisce un singolo backslash, quindi avresti bisogno di qualcosa come "\\\\ {" che è un po 'troppo ...) – Rory

2

Ho avuto lo stesso problema due settimane fa. Resharper lo risolve automaticamente.

Mettendolo come "{" + mystring + "}" e usando "use format string" lo ha convertito automaticamente in string.format ("{{{{0}}}", mystring).

+0

bella funzione ("altri 3 per andare ..") –

0

Si potrebbe trovare

var hello = "Hello world"; 
var test = string.Format("{0}{1}{2}", "{", hello, "}"); 

facile da leggere rispetto

var test = string.Format("{{{0}}}", hello);