Как добавить двойные кавычки в строку, которая находится внутри переменной?


168

У меня есть переменная, как:

string title = string.empty;

Мне нужно, чтобы любая строка, переданная ему, должна отображать содержимое внутри div в двойных кавычках. Итак, я написал что-то вроде:

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

Но как добавить здесь двойные кавычки? Так что он будет отображаться так:

"How to add double quotes"

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

это было бы полезно: stackoverflow.com/questions/46298985/…
Сиаваш

Ответы:


331

Вы должны избежать их, удваивая их (дословно строковый литерал):

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

Или с обычным строковым литералом вы избегаете их с \:

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

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

1
@AnilPurswani - а? Вы должны прочитать о том, что означает побег.
Отредактировано

когда используется string 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: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi".

При необходимости использовать двойные двойные литералы используйте: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; Вместо: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi"; Поскольку первые литералы для пути, а затем вторые литералы для двойных кавычек


2

Вы могли бы использовать &quot;вместо ". Он будет правильно отображаться браузером.


Нету не работает 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; "+ title + @" & dquo; </ div>

или избегайте двойных кавычек:

\»
<div> \ "" + title + @ "\" </ div>



0

Поставьте обратную косую черту (\) перед двойными кавычками. Это должно работать.


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\";
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.