วิธีเพิ่มอัญประกาศคู่ให้กับสตริงที่อยู่ภายในตัวแปรได้อย่างไร


168

ฉันมีตัวแปรเช่น:

string title = string.empty;

ความต้องการของฉันคือสตริงอะไรก็ตามที่ผ่านไปฉันต้องแสดงเนื้อหาภายใน div ด้วยเครื่องหมายคำพูดคู่ ดังนั้นฉันได้เขียนสิ่งที่ชอบ:

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

แต่จะเพิ่มเครื่องหมายคำพูดคู่ตรงนี้ได้อย่างไร เพื่อให้มันแสดงเช่น:

"How to add double quotes"

Nope ไม่ทำงาน asp.net c # vs2013 ไม่ว่าฉันจะรหัสอย่างไรถ้าคุณดูและแหล่งที่มาของหน้า & quot; และ & # 39; จะปรากฏขึ้นเสมอ ฉันใช้ `แอตทริบิวต์. เพิ่ม (... '
djack109

สิ่งนี้จะเป็นประโยชน์: stackoverflow.com/questions/46298985//
Siavash

คำตอบ:


331

คุณต้องหลบหนีพวกเขาโดยเพิ่มพวกเขาเป็นสองเท่า (ตัวอักษรคำต่อคำทุกคำ):

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

หรือด้วยสตริงตัวอักษรปกติคุณสามารถใช้คำสั่ง a \:

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

และวิธีลบในขณะที่บันทึกในฐานข้อมูล? ฉันแค่ต้องการลบเครื่องหมายอัญประกาศเพิ่มเติมที่ใช้สำหรับการหลบหนีและไม่ใช่ทั้งสอง
Anil Purswani

1
@AnilPurswani - เหรอ? คุณต้องอ่านความหมายของการหลบหนี
Oded

เมื่อใช้สตริง str = @ "" "วิธีเพิ่ม doublequotes" ""; มันเก็บ "" วิธีเพิ่ม doublequotes "" ในฐานข้อมูล ..... และในขณะที่ดึงมันดึงข้อมูลเดียวกัน .... ตอนนี้พยายามแปลงมัน .... ดีฉันได้รับคำตอบ - str.Replace ("\\ \ "", "\" "); ...... ยังไงก็ตามขอบคุณสำหรับคำตอบของคุณ ....
Anil Purswani

หากคุณต้องการให้สตริงมีเครื่องหมายคำพูดอยู่ นั่นไม่เกี่ยวกับการเก็บไว้ในฐานข้อมูล - ถ้าคุณต้องการตัดเครื่องหมายคำพูดก่อนที่จะเก็บไว้ในฐานข้อมูลให้ทำเช่นนั้น
Oded

ใช่ฉันก็แค่พยายามที่จะได้รับการแก้ปัญหาของstackoverflow.com/questions/26118354/...และถึงคำถามนี้ซึ่งดูเหมือนว่าคล้ายกันเมื่อได้รับการเรียกข้อมูลจากฐานข้อมูล .....
คราม Purswani

46

ดังนั้นคุณจะถามวิธีเก็บ doublequotes ภายในตัวแปรสตริงหรือไม่? โซลูชันสองข้อสำหรับสิ่งนั้น:

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

เพื่อให้ชัดเจนยิ่งขึ้นว่าเกิดอะไรขึ้น:

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

14

หากฉันเข้าใจคำถามของคุณถูกต้องคุณอาจลองทำสิ่งนี้:

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

14

หากคุณต้องทำสิ่งนี้บ่อยครั้งและคุณต้องการให้สิ่งนี้สะอาดกว่าในโค้ดคุณอาจต้องการใช้วิธีการขยายสำหรับสิ่งนี้

นี่เป็นรหัสที่ชัดเจนจริงๆ แต่ฉันก็ยังคิดว่ามันจะมีประโยชน์ในการคว้าและทำให้คุณประหยัดเวลา

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

จากนั้นคุณอาจเรียก foo.AddDoubleQuotes () หรือ "foo" .AddDoubleQuotes () ในทุก ๆ สตริงที่คุณต้องการ

หวังว่าความช่วยเหลือนี้



6

หมายเหตุอื่น:

    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 ตามที่ผ่านมาคือ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"

เมื่อต้องการตัวอักษรสองเท่าให้ใช้: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; แทนที่จะเป็น: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi"; เนื่องจากตัวอักษรตัวแรกมีไว้สำหรับชื่อพา ธ แล้วตัวอักษรตัวที่สองจะใช้สำหรับเครื่องหมายคำพูดคู่


2

คุณสามารถใช้แทน&quot; "เบราว์เซอร์จะแสดงอย่างถูกต้อง


Nope ไม่ทำงาน asp.net c # vs2013 ไม่ว่าฉันจะรหัสอย่างไรถ้าคุณดูและแหล่งที่มาของหน้า & quot; และ & # 39; จะปรากฏขึ้นเสมอ ฉันใช้ `แอตทริบิวต์. เพิ่ม (... '
djack109


2

$คุณสามารถใช้

Interpolated Strings : ใช้เพื่อสร้างสตริง สตริงที่ถูกแทรกดูเหมือนว่าสตริงเท็มเพลตที่มีนิพจน์การประมาณค่า สตริงที่ถูกสอดแทรกส่งคืนสตริงที่แทนที่นิพจน์การสอดแทรกที่มีในการแทนค่าสตริง คุณสมบัตินี้มีให้ใน C # 6 และเวอร์ชั่นที่ใหม่กว่า

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





0

ใน C # ถ้าเราใช้ "\" หมายความว่าจะแสดงสัญลักษณ์ต่อไปนี้ไม่ใช่สัญลักษณ์ c # inbuild ที่นักพัฒนาจะใช้ ดังนั้นในสายอักขระเราต้องการอัญประกาศคู่หมายความว่าเราสามารถใส่สัญลักษณ์ "\" ก่อนอัญประกาศstring s = "\"Hi\""


0

"<i class=\"fa fa-check-circle\"></i>"ใช้กับผู้ประกอบการที่ประกอบไปEval()ด้วยผูกพันข้อมูล:

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

0

ทางอ้อม แต่เข้าใจง่ายทางเลือกในการเพิ่มราคาที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง -

char quote = '"';

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

0

หากคุณต้องการเพิ่มเครื่องหมายคำพูดคู่ใน HTML

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

0

หากคุณต้องการเพิ่มเครื่องหมายคำพูดคู่ให้กับสตริงที่มีค่าแบบไดนามิกด้วย สำหรับสิ่งเดียวกันแทนที่ CodeId [i] และ CodeName [i] คุณสามารถใส่ค่าแบบไดนามิกของคุณ

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.