Como adicionar aspas duplas a uma string que está dentro de uma variável?


168

Eu tenho variável como:

string title = string.empty;

Minha necessidade é que, seja qual for a string passada, eu tenho que exibir o conteúdo dentro de uma div com aspas duplas. Então, eu escrevi algo como:

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

Mas como adicionar aspas duplas aqui? Para que seja exibido como:

"How to add double quotes"

Nope não funciona asp.net, c # vs2013, não importa como eu codifique se você olhar e a fonte da página & quot; e & # 39; são sempre exibidos. Eu estou usando o `Attributes.Add (... '
djack109

Respostas:


331

Você precisa escapá-los dobrando-os (literal literalmente):

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

Ou com uma literal de string normal, você os escapa com um \:

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

e como removê-lo ao salvar no banco de dados? Eu só quero remover aspas duplas adicional utilizado para escapar e não tanto
Anil Purswani

1
@AnilPurswani - hein? Você precisa ler o que significa escapar.
Oded

quando usado string str = @ "" "Como adicionar aspas duplas" ""; ele armazena "" Como adicionar aspas duplas "" no banco de dados ..... e, ao buscá-lo, recupera o mesmo .... agora tentando convertê-lo .... bem, recebi a resposta - str.Replace ("\\ \ "", "\" "); ...... de qualquer maneira obrigado pela sua resposta ....
Anil Purswani

Se você deseja que uma string contenha aspas, você as escapará. Isso não tem nada a ver com armazená-las no banco de dados - se você deseja extrair as aspas antes de armazenar no banco de dados, faça isso.
Oded

Sim, eu estava apenas tentando obter a solução de stackoverflow.com/questions/26118354/… e cheguei a esta pergunta, que parece semelhante quando os dados foram buscados no banco de dados .....
Anil Purswani

46

Então você está essencialmente perguntando como armazenar aspas duplas em uma variável de string? Duas soluções para isso:

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

Para talvez deixar um pouco mais claro o que acontece:

var string1 = @"before ""inside"" after";
var string2 = "before \"inside\" after";

14

Se eu entendi sua pergunta corretamente, talvez você possa tentar o seguinte:

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

14

Se você tiver que fazer isso com frequência e quiser que o código seja mais limpo, poderá ter um método de extensão para isso.

Este é um código realmente óbvio, mas ainda acho que pode ser útil pegar e fazer você economizar tempo.

  /// <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 + "\"";
    }

Em seguida, você pode chamar foo.AddDoubleQuotes () ou "foo" .AddDoubleQuotes (), em todas as strings que desejar.

Espero que esta ajuda.


7

Você também pode incluir aspas duplas em aspas simples.

string str = '"' + "How to add doublequotes" + '"';

6

Outra 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");

O valor real de hh como passado será "H: \ MOVIES \ Battel SHIP \ done-warship-cd1.avi".

Quando precisar de literais duplos duplos, use: @ "H: \ MOVIES \ Battel SHIP \ done-warship-cd1.avi"; Em vez de: @ "H: \ MOVIESBattel SHIP \ done-warship-cd1.avi"; Como os primeiros literais são para o nome do caminho e os segundos literais são para aspas duplas


2

Você poderia usar em &quot;vez de ". Será exibido corretamente pelo navegador.


Nope não funciona asp.net, c # vs2013, não importa como eu codifique se você olhar e a fonte da página & quot; e & # 39; são sempre exibidos. Estou usando o `Attributes.Add (... '
djack109


2

Você pode usar $.

Cordas interpoladas : usadas para construir cordas. Uma sequência interpolada se parece com uma sequência de modelo que contém expressões interpoladas. Uma sequência interpolada retorna uma sequência que substitui as expressões interpoladas que ela contém por suas representações de sequência. Esse recurso está disponível no C # 6 e nas versões posteriores.

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

1

Use um

& dquo;
<div> "+ title + @" </div>

ou escapar da citação dupla:

\ "
<div> \ "" + título + @ "\" </div>

1

Em C # você pode usar:

 string1 = @"Your ""Text"" Here";
 string2 = "Your \"Text\" Here";


0

Coloque uma barra invertida (\) antes das aspas duplas. Isso deve funcionar.


0

em C # se usarmos "\" significa que indicará o seguinte símbolo não é o símbolo c # inbuild que será usado pelo desenvolvedor. portanto, em string, precisamos de aspas duplas, significa que podemos colocar o símbolo "\" antes das aspas duplas.string s = "\"Hi\""


0

"<i class=\"fa fa-check-circle\"></i>"é usado com o operador ternário com Eval()ligação de dados:

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

0

Uma alternativa indireta, mas simples de entender, para adicionar aspas no início e no final da string -

char quote = '"';

string modifiedString = quote + "Original String" + quote;

0

Se você deseja adicionar aspas duplas em HTML

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

0

Se você deseja adicionar aspas duplas a uma sequência que contenha valores dinâmicos também. Para o mesmo no lugar de CodeId [i] e CodeName [i], você pode colocar seus valores dinâmicos.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.