¿Cómo se pueden escapar los corchetes al usarlos string.Format
?
Por ejemplo:
String val = "1,2,3"
String.Format(" foo {{0}}", val);
Este ejemplo no arroja una excepción, pero genera la cadena foo {0}
.
¿Hay alguna forma de escapar de los corchetes?
Respuestas:
Para que salgas
foo {1, 2, 3}
tienes que hacer algo como:Para emitir un
{
uso{{
y para generar un}
uso}}
.o Ahora, también puede usar la interpolación de cadenas de C # como esta (función disponible en C # 6.0)
Corchetes de escape: Interpolación de cadenas $ ("") . Es una nueva característica en C # 6.0
fuente
$"a = {{ {a} }}"
)string v = $" foo {{{t}}}";
. Si tiene otros personajes para escapar que no son rizados, puede usar el combo $ @string v2 = $@"\foo {{{t}}}\";
Sí a la salida
{
en elstring.Format
que tiene que escapar de ella como esta{{
Así que esto
es la salida
"foo {1,2,3}"
.PERO debe saber acerca de un error de diseño en C #, que es que al continuar con la lógica anterior, supondría que el siguiente código imprimirá {24.00}
Pero esto imprime {N}. Esto se debe a la forma en que C # analiza las secuencias de escape y los caracteres de formato. Para obtener el valor deseado en el caso anterior, debe usar esto en su lugar.
Artículos de referencia String.Format gottach y String Formatting FAQ
fuente
string.Format( "{{{0}}}", i.ToString("N") );
que puede ser más legible para algunos.¡Casi ahí! La secuencia de escape para una llave es más
{{
o}}
menos para su ejemplo que usaría:fuente
Puede usar corchetes dobles abiertos y corchetes de cierre doble que solo mostrarán un corchete en su página.
fuente
Escapar de llaves y usar la interpolación de cuerdas es un desafío interesante. Debe usar corchetes cuádruples para escapar del análisis y la interpolación de cadenas
string.format
.Corchetes de escape: Interpolación de cadenas $ ("") y String.Format
fuente
Vine aquí en busca de cómo construir cadenas json ad-hoc (sin serializar una clase / objeto) en C #. En otras palabras, cómo escapar de llaves y comillas mientras se usan cadenas interpoladas en C # y " literales de cadena textuales " (cadenas dobles entre comillas con el prefijo '@'), como ...
fuente
fuente
o puede usar la interpolación de cadena de C # de esta manera (función disponible en C # 6.0)
fuente
Corchetes de escape: Interpolación de cadenas $ (""):
Ahora, también puede usar la interpolación de cadenas de C # como esta (característica disponible en C # 6.0)
fuente
Mi objetivo:
Necesitaba asignar el valor
"{CR}{LF}"
a unastring
variabledelimiter
.Código c #:
Nota: Para escapar de caracteres especiales, normalmente tiene que usar. Para abrir el soporte rizado {, use uno adicional como {{. Para cerrar el corchete}, use un extra}}.
fuente