Değişken içindeki bir dizeye çift tırnak nasıl eklenir?


168

Ben gibi değişken var:

string title = string.empty;

Benim ihtiyacım ne dize geçirilirse ben çift tırnak içinde bir div içindeki içeriği görüntülemek zorunda. Yani şöyle bir şey yazdım:

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

Ama buraya çift tırnak nasıl eklenir? Böylece şöyle görünecektir:

"How to add double quotes"

Hayır asp.net, c # vs2013 çalışmıyor, nasıl bakarsanız bakın ve sayfa kaynağı & quot; ve & # 39; her zaman görüntülenir. `Attributes.Add (... '' kullanıyorum
djack109

Yanıtlar:


331

Onları ikiye katlayarak kaçmanız gerekir (kelimesi kelimesine string):

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

Veya normal bir dize değişmeziyle onlardan bir ile kaçarsınız \:

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

ve veritabanına kaydederken nasıl kaldırılır? Ben sadece kaçmak için kullanılan ek çift tırnak kaldırmak istiyorum ve her ikisi de değil
Anil Purswani

1
@AnilPurswani - ha? Kaçmanın ne demek olduğunu okumalısınız.
Oded

kullanıldığında string = @ "" "Çift tırnak nasıl eklenir" ""; "" Nasıl çift tırnak eklemek "veritabanında depolar ..... ve getirirken aynı alır .... şimdi dönüştürmek için çalışıyor .... iyi cevap var - str.Replace (" \\ \ "", "\" "); ...... her neyse cevabınız için teşekkürler ....
Anil Purswani

Bir dizenin tırnak içermesini istiyorsanız, bunlardan kaçarsınız. Bunun veritabanında saklanmasıyla hiçbir ilgisi yoktur - DB'de saklamadan önce tırnak işaretlerini kaldırmak istiyorsanız, bunu yapın.
Oded

evet sadece çözüm bulmaya çalışıyordum stackoverflow.com/questions/26118354/… ve bu soruya ulaştım, veri veritabanından getirildiğinde benzer görünüyor .....
Anil Purswani

46

Yani aslında bir çift değişken içinde bir çift değişkenin nasıl saklanacağını soruyorsunuz? Bunun için iki çözüm:

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

Belki biraz daha açık hale getirmek için ne olur:

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

14

Sorunuzu doğru anlarsam, belki bunu deneyebilirsiniz:

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

14

Bunu sık sık yapmak zorundaysanız ve kodda daha temiz olmasını istiyorsanız, bunun için bir uzantı yöntemine sahip olmak isteyebilirsiniz.

Bu gerçekten bariz bir kod, ama yine de kapmak ve size zaman kazandırmak için yararlı olabilir düşünüyorum.

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

Daha sonra istediğiniz her dizede foo.AddDoubleQuotes () veya "foo" .AddDoubleQuotes () yöntemini çağırabilirsiniz.

Umarım bu yardım.


7

Çift tırnakları tek tırnak içine de ekleyebilirsiniz.

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

6

Başka Bir Not:

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

Hh iletilirken gerçek değeri "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi" olur.

Çift çift değişmezlere ihtiyaç duyduğunuzda şunları kullanın: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; Bunun yerine: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi"; Çünkü ilk değişmezler yol adı içindir, sonra ikinci değişmez değerler çift tırnak işaretleri içindir


2

Bunun &quot;yerine kullanabilirsiniz ". Tarayıcı tarafından doğru bir şekilde görüntülenecektir.


Hayır asp.net, c # vs2013 çalışmıyor, nasıl bakarsanız bakın ve sayfa kaynağı & quot; ve & # 39; her zaman görüntülenir. `Attributes.Add (... '' kullanıyorum
djack109


2

Kullanabilirsiniz $.

Enterpolasyonlu Dizeler : Dizeleri oluşturmak için kullanılır. Enterpolasyonlu dize, enterpolasyonlu ifadeler içeren bir şablon dizesine benzer. Enterpolasyonlu dize, içerdiği enterpolasyonlu ifadeleri dize temsilleriyle değiştiren bir dize döndürür. Bu özellik C # 6 ve sonraki sürümlerinde mevcuttur.

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

1

Either "kalıbını kullanınız

Ve dquo;
<div> & dquo; "+ başlık + @" & dquo; </div>

veya çift tırnak kaçmak:

\"
<div> \ "" + başlık + @ "\" </div>

1

C # 'da şunları kullanabilirsiniz:

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


0

Çift tırnak işaretleri arasına ters eğik çizgi (\) koyun. Bu işe yaramalı.


0

C # 'da "\" kullanırsak, aşağıdaki sembolün geliştirici tarafından kullanılacak c # inbuild sembolü olmadığını gösterir. yani dize çift tırnak gerekir çift tırnak önce "\" sembolü koyabilirsiniz anlamına gelir.string s = "\"Hi\""


0

"<i class=\"fa fa-check-circle\"></i>"Eval()veri bağlayıcısı olan üçlü operatör ile kullanılır :

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

0

Dizenin başında ve sonunda tırnak eklemek için dolaylı, ancak anlaşılması kolay bir alternatif -

char quote = '"';

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

0

HTML'ye çift tırnak eklemek istiyorsanız

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

0

Dinamik değerler içeren bir dizeye çift tırnak eklemek isterseniz. Bunun için CodeId [i] ve CodeName [i] yerine dinamik değerlerinizi koyabilirsiniz.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.