如何在变量内部的字符串中添加双引号?


168

我有像这样的变量:

string title = string.empty;

我需要的是,无论传递给它的字符串是什么,我都必须在div中用双引号显示内容。所以我写了类似的东西:

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

但是如何在此处添加双引号?这样它将显示为:

"How to add double quotes"

Nope无法在asp.net,C#vs2013中运行,无论我如何编码,如果页面外观和页面源代码“ 和&#39; 总是显示。我使用`Attributes.Add(...”
djack109

Answers:


331

您需要通过将它们加倍来逃脱它们(普通字符串文字):

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

或者使用普通的字符串文字,您可以使用\:对其进行转义:

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

以及如何在保存到数据库时将其删除?我只想删除用于转义的附加双引号,而不要全部都删除
Anil Purswani 2014年

1
@AnilPurswani-是吗?您需要阅读转义的含义。
2014年

当使用字符串str = @“”“时如何添加双引号”“”; 它将“如何添加双引号”存储在数据库中.....并且在获取它时会检索到相同的....现在尝试将其转换....好了,我得到了答案-str.Replace(“ \\ \“”,“ \”“);......无论如何,谢谢您的回复..
Anil Purswani 2014年

如果希望字符串包含引号,则可以将其转义。这与将它们存储在数据库中无关-如果要在存储在数据库中之前删除引号,则可以这样做。
2014年

是的,我只是想获取stackoverflow.com/questions/26118354/…的解决方案,并到达了这个问题,当从数据库中获取数据时,这个问题似乎很相似..
Anil Purswani 2014年

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()。

希望能有所帮助。



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中运行,无论我如何编码,如果页面外观和页面源代码“ 和&#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

在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

如果要在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\";
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.