2013-03-17 26 views
9

I C#で次の文字列があります。単一引用符と二重引用符の交換

string ptFirstName = tboxFirstName.Text; 

ptFirstNameリターン:私は、私は数多くのバリエーションを試してみました'John'

にこれを変換したい"John"

を次のようになりますが、二重引用符を一重引用符に置き換えることはできません。

ptFirstName.Replace("\"", "'"); 

誰でも私を啓発できますか?

私の目標は、XMLファイルにこれを記述することです:

writer.WriteAttributeString("first",ptFirstName); // where ptFirstName is 'John' in single quotes. 
+0

1. 'Replace'は* new *文字列を返します2.なぜデータが' WriteAttributeString'に含まれているのですか? (いずれにしても「正しく」コード化されているはずです) –

+0

これは、シングルクォーテーションを探しているデバイスで読み取られたSDカードにその形式で必要とするためです。 – user2058253

答えて

16

ptFirstName.Replace("\"", "'"); 

が動作しない理由はstringが不変であるということです。代わりに

ptFirstName = ptFirstName.Replace("\"", "'"); 

を使用する必要があります。ここにはdemo on ideoneがあります。

1

テキストボックスに"John"を入力しなかったとしますが、ちょうどJohnとし、ブレークポイントを設定してビジュアルスタジオの変数を見ているときに文字列の前後に引用符が表示されますか?

もしそうなら、文字列の一部ではなく、値が文字列であることを示すだけであることに気づくでしょう。それらはデバッガによって追加されます。あなたがするべき場合:

Console.WriteLine(ptFirstName); 

引用符は表示されません。

+0

だから、私はそれを正しく全部変えてきたと思う。しかし、私のXMLファイルに書き込むときに、次の例のようにxmlファイルに "John"の代わりに "John"を表示させたい場合、私は上に上がります... おそらく私の質問は、writer.WriteAttributeString( "first"、ptFirstName)を使ってXMLファイルに書き込む方法です。二重引用符で終わることはありませんか? (これは私がこれを書いているSDカードが一重引用符形式を必要とする別のデバイスで読み込まれるために必要です) – user2058253

関連する問題