3

ここでちょっとした問題があります。文字 ' を \' に置き換えようとしています

次の方法で文字列置換メソッドを試しました。

1.

string test = "HISTOIRE D'O, CHAPITRE II";
test = test.Replace("'","\'");

文字列テストで変更されたものは、宣言されたものと同じではありません

2.

string test = "HISTOIRE D'O, CHAPITRE II";
test = test.Replace("'","\\'");

これは、文字列を「HISTOIRE D\\'O, CHAPITRE II」のようにフォーマットします。

Googleなどでまだ何も見つかりませんでした。

いつも助けてくれてありがとう。

4

5 に答える 5

5

2 番目のコードは正しいです。

これは、文字列を「HISTOIRE D\'O, CHAPITRE II」のようにフォーマットします。

いいえ、そうではありません。デバッガーではこのように表示されますが、コンソールなどにダンプすると、バックスラッシュが 1 つしかないことがわかります。

別の方法として、逐語的な文字列リテラルを使用できます。

test = test.Replace("'", @"\'");
于 2013-08-02T13:13:44.093 に答える
1

あなたの2番目のケースは正しいようです。これは degubber でどのように見えるかだけのようです。コンソールに書き込もうとすると、期待される結果が表示されます。

ここに画像の説明を入力

代わりに動詞文字列リテラルを使用できます。

string test = "HISTOIRE D'O, CHAPITRE II";
test = test.Replace("'", @"\'");
于 2013-08-02T13:14:23.217 に答える
0

2番目の例は機能していますが、デバッガーで結果を見ると、新しいバックスラッシュを追加することでバックスラッシュを「うまく」エスケープします。

結果をコンソール ウィンドウに出力すると、期待どおりの結果が得られるはずです。

于 2013-08-02T13:14:39.360 に答える
0
test = test.Replace("'", @"\'");
于 2013-08-02T13:14:39.780 に答える
0

これでうまくいくはずです:

string test = "HISTOIRE D'O, CHAPITRE II";
test = test.Replace("'", @"\'");
于 2013-08-02T13:17:00.790 に答える