¿Cómo agregar comillas dobles a una cadena que está dentro de una variable?

168

Tengo variables como:

string title = string.empty;

Mi necesidad es que cualquier cadena que se le pase tenga que mostrar el contenido dentro de un div con comillas dobles. Entonces escribí algo como:

...
...
<div>"+ title +@"</div>
...
...

¿Pero cómo agregar las comillas dobles aquí? Para que se muestre como:

"How to add double quotes"
ANP
fuente
No, no funciona asp.net, c # vs2013, no importa cómo codifique si miras y la fuente de la página & quot; y & # 39; siempre se muestran. Estoy usando `Attributes.Add (... '
djack109
esto sería útil: stackoverflow.com/questions/46298985/…
Siavash el

Respuestas:

331

Debe escapar de ellos duplicándolos (literal de cadena literal):

string str = @"""How to add doublequotes""";

O con un literal de cadena normal, escapa de ellos con un \:

string str = "\"How to add doublequotes\"";
Oded
fuente
¿Y cómo eliminarlo mientras se guarda en la base de datos? Solo quiero eliminar la comilla doble adicional utilizada para escapar y no ambas
Anil Purswani
1
@AnilPurswani - ¿eh? Necesita leer sobre lo que significa escapar.
Finalizado el
cuando se usa string str = @ "" "Cómo agregar comillas dobles" ""; almacena "" Cómo agregar comillas dobles "" en la base de datos ..... y al buscarlo recupera lo mismo ... ahora intenta convertirlo ... bueno, obtuve la respuesta: str.Replace ("\\ \ "", "\" "); ... de todos modos, gracias por su respuesta ...
Anil Purswani
Si quieres que una cadena contenga comillas, escapa de ellas. Eso no tiene nada que ver con almacenarlos en la base de datos; si desea eliminar las comillas antes de almacenarlas en la base de datos, hágalo.
Finalizado el
sí, solo estaba tratando de obtener la solución de stackoverflow.com/questions/26118354/… y llegué a esta pregunta, que parece similar cuando se obtuvieron los datos de la base de datos .....
Anil Purswani
46

¿Entonces esencialmente se pregunta cómo almacenar comillas dobles dentro de una variable de cadena? Dos soluciones para eso:

var string1 = @"""inside quotes""";
var string2 = "\"inside quotes\"";

Para quizás dejar un poco más claro lo que sucede:

var string1 = @"before ""inside"" after";
var string2 = "before \"inside\" after";
Fredrik Mörk
fuente
14

Si entiendo su pregunta correctamente, tal vez pueda intentar esto:

string title = string.Format("<div>\"{0}\"</div>", "some text");
schwindelig
fuente
14

Si tiene que hacer esto a menudo y le gustaría que este sea más limpio en el código, es posible que desee tener un método de extensión para esto.

Este es un código realmente obvio, pero aún así creo que puede ser útil agarrarlo y hacerle ahorrar tiempo.

  /// <summary>
    /// Put a string between double quotes.
    /// </summary>
    /// <param name="value">Value to be put between double quotes ex: foo</param>
    /// <returns>double quoted string ex: "foo"</returns>
    public static string AddDoubleQuotes(this string value)
    {
        return "\"" + value + "\"";
    }

Entonces puede llamar a foo.AddDoubleQuotes () o "foo" .AddDoubleQuotes (), en cada cadena que desee.

Espero que esto ayude.

codea
fuente
7

También puede incluir las comillas dobles en comillas simples.

string str = '"' + "How to add doublequotes" + '"';
Yannick Turbang
fuente
6

Otra nota:

    string path = @"H:\\MOVIES\\Battel SHIP\\done-battleship-cd1.avi"; 
    string hh = string.Format("\"{0}\"", path);
    Process.Start(@"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe ", hh + " ,--play");

El valor real de hh según lo aprobado será "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi".

Cuando necesite usar dobles literales dobles use: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; En lugar de: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi"; Porque los primeros literales son para el nombre de ruta y luego los segundos literales son para las comillas dobles

DR.
fuente
2

Podrías usar en &quot;lugar de ". El navegador lo mostrará correctamente.

Jens
fuente
No, no funciona asp.net, c # vs2013, no importa cómo codifique si miras y la fuente de la página & quot; y & # 39; siempre se muestran. Estoy usando `Attributes.Add (... '
djack109
2

Usando interpolación de cadenas con ejemplo de trabajo :

var title = "Title between quotes";
var string1 = $@"<div>""{title}""</div>";  //Note the order of the $@
Console.WriteLine (string1);

Salida

<div>"Title between quotes"</div>
WorkSmarter
fuente
2

Puedes usar $.

Cadenas interpoladas : se utilizan para construir cadenas. Una cadena interpolada se parece a una cadena de plantilla que contiene expresiones interpoladas. Una cadena interpolada devuelve una cadena que reemplaza las expresiones interpoladas que contiene con sus representaciones de cadena. Esta característica está disponible en C # 6 y versiones posteriores.

string commentor = $"<span class=\"fa fa-plus\" aria-hidden=\"true\"> {variable}</span>";
Dijo Roohullah Allem
fuente
1

Utilizar cualquiera

& dquo;
<div> & dquo; "+ título + @" & dquo; </div>

o escapar de la cita doble:

\ "
<div> \ "" + título + @ "\" </div>
Graham
fuente
1

En C # puedes usar:

 string1 = @"Your ""Text"" Here";
 string2 = "Your \"Text\" Here";
Shivam Mishra
fuente
1
string doubleQuotedPath = string.Format(@"""{0}""",path);
Sunil Kumar
fuente
0

Ponga una barra invertida (\) antes de las comillas dobles. Eso debería funcionar.

Belinda
fuente
0

en C # si usamos "\" significa que indicará que el siguiente símbolo no es un símbolo incorporado en C # que usará el desarrollador. así que en cadena necesitamos comillas dobles significa que podemos poner el símbolo "\" antes de las comillas dobles.string s = "\"Hi\""

Malathi Mals
fuente
0

"<i class=\"fa fa-check-circle\"></i>"se utiliza con operador ternario con Eval()enlace de datos:

Text = '<%# Eval("bqtStatus").ToString()=="Verified" ? 
       Convert.ToString("<i class=\"fa fa-check-circle\"></i>") : 
       Convert.ToString("<i class=\"fa fa-info-circle\"></i>"
5377037
fuente
0

Una alternativa indirecta, pero fácil de entender, para agregar comillas al inicio y al final de la cadena:

char quote = '"';

string modifiedString = quote + "Original String" + quote;
Abhishek Poojary
fuente
0

Si desea agregar comillas dobles en HTML

echo "<p>Congratulations,  &#8220; ". $variable ." &#8221;!</p>";
output -> Congratulations, "Mr Jonh "!
Yogesh Sarvaiya
fuente
0

Si desea agregar comillas dobles a una cadena que también contiene valores dinámicos. Para lo mismo en lugar de CodeId [i] y CodeName [i] puede poner sus valores dinámicos.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Ramya Prakash Rout
fuente