Як додати подвійні лапки до рядка, який знаходиться всередині змінної?


168

У мене є змінна типу:

string title = string.empty;

Моя потреба полягає в тому, що будь-який рядок переданий до нього, я повинен відображати вміст у діві з подвійними лапками. Тому я написав щось на кшталт:

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

Але як додати сюди подвійні лапки? Так що він відображатиметься так:

"How to add double quotes"

Nope не працює asp.net, c # vs2013 незалежно від того, як я кодую, якщо ви подивитесь та джерело сторінки & quot; та & # 39; завжди відображаються. Я використовую `Attributes.Add (... '
djack109

це буде корисно: stackoverflow.com/questions/46298985/…
Siavash

Відповіді:


331

Вам потрібно уникнути їх, подвоївши їх (дослівний рядок буквально):

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

Або зі звичайним літеральним рядком ви уникаєте їх за допомогою \:

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

і як його видалити, зберігаючи в базі даних? Я просто хочу видалити додаткову подвійну цитату, що використовується для втечі, а не обидві
Аніл Першані

1
@AnilPurswani - так? Вам потрібно прочитати, що означає втеча.
Oded

коли використовується рядок str = @ "" "Як додати подвійні лапки" ""; він зберігає "" Як додати подвійні лапки "" в базу даних ..... і під час вилучення він витягує те саме .... тепер намагається перетворити .... ну, я отримав відповідь - str.Replace ("\\ \ "", "\" "); ...... все одно дякую за вашу відповідь ....
Аніл Першані

Якщо ви хочете, щоб рядок містив лапки, ви уникаєте їх. Це не має нічого спільного зі збереженням їх у базі даних - якщо ви хочете зняти лапки перед зберіганням у БД, то зробіть це.
Одід

так, я просто намагався знайти рішення stackoverflow.com/questions/26118354/… і дійшов до цього питання, яке схоже на те, коли було отримано дані з бази даних .....
Аніл Першані

46

Отже, ви по суті запитуєте, як зберігати подвійні лапки в рядковій змінній? Два рішення для цього:

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 (), у кожній вподобаній вам рядку.

Сподіваюся, що це допоможе.


7

Ви також можете включити подвійні лапки в одиничні лапки.

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

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: \ FOVIES \ Battel SHIP \ done-battleleship-cd1.avi".

Якщо потрібні подвійні подвійні літерали, використовуйте: @ "H: \ MOVIES \ Battel SHIP \ done-battleleship-cd1.avi"; Замість: @ "H: \ MOVIESBattel SHIP \ done-battleleship-cd1.avi"; Тому що перший літерал - це ім'я шляху, а потім другий - для подвійних лапок


2

Ви можете використовувати &quot;замість цього ". Він буде відображений правильно браузером.


Nope не працює asp.net, c # vs2013 незалежно від того, як я кодую, якщо ви подивитесь та джерело сторінки & quot; та & # 39; завжди відображаються. Я використовую `Attributes.Add (... '
djack109


2

Можна використовувати $.

Інтерпольовані рядки : використовуються для побудови рядків. Інтерпольована рядок виглядає як рядок шаблону, що містить інтерпольовані вирази. Інтерпольована рядок повертає рядок, який замінює виражені в ній інтерпольовані вирази їх представленнями рядків. Ця функція доступна в C # 6 та пізніших версіях.

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

1

Використовуйте будь-який

& dquo;
<div> & dquo; "+ назва + @" & dquo; </div>

або уникнути подвійної цитати:

\ "
<div> \ "" + назва + @ "\" </div>



0

Поставте зворотну косу рису (\) перед подвійними лапками. Це має спрацювати.


0

у C #, якщо ми використовуємо "\", означає, що наступний символ не є c # вбудованим символом, який використовуватиме розробник. тому в рядку нам потрібні подвійні лапки означає, що ми можемо поставити символ "\" перед подвійними лапками.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\";
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.