変数内の文字列に二重引用符を追加するにはどうすればよいですか?


168

私は次のような変数を持っています:

string title = string.empty;

私の必要性は、それに渡される文字列が何であれ、二重引用符で囲まれたdiv内のコンテンツを表示する必要があることです。だから私は次のようなものを書きました:

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

しかし、ここで二重引用符を追加する方法は?のように表示されるように:

"How to add double quotes"

いいえ、asp.net、c#vs2013は機能しません。どのようにコードを記述しても、ページのソース&quot; と&#39; 常に表示されます。「Attributes.Add(...」を使用しています
djack109

回答:


331

それらを2倍にしてエスケープする必要があります(逐語的文字列リテラル):

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

または、通常の文字列リテラルでは、\:でエスケープします。

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

そして、データベースに保存しているときにそれを削除する方法?両方ではなく、エスケープに使用されている追加の二重引用符を削除したいだけです
Anil Purswani '30 / 09/30

1
@AnilPurswani-ハァッ?エスケープの意味を読む必要があります。
2014

文字列str = @ "" "二重引用符を追加する方法" ""; データベースに "" How to add doublequotes ""が格納されています...そしてフェッチしながら同じものを取得します...今それを変換しようとしています... \ ""、 "\" "); ......とにかく返信をありがとう....
Anil Purswani '30 / 09/30

文字列に引用符を含める場合は、エスケープします。これは、データベースに保存することとは関係ありません。DBに保存する前に引用符を取り除きたい場合は、それを実行してください。
オデッド

ええ、私はただのソリューションを取得しようとしていたstackoverflow.com/questions/26118354/...をデータが.....データベースからフェッチされた場合にも同様のようで、この質問にして到達
アニルPurswani

46

それであなたは本質的に文字列変数内に二重引用符を格納する方法を尋ねていますか?そのための2つのソリューション:

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番目のリテラルは二重引用符用です。


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; "+タイトル+ @"&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

動的な値も含む文字列に二重引用符を追加する場合。同じように、CodeId [i]とCodeName [i]の代わりに、動的な値を設定できます。

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.