2013-03-17 26 views
9

Tôi có chuỗi sau đây trong C#:Thay nháy kép với một giá duy nhất

string ptFirstName = tboxFirstName.Text; 

ptFirstName lợi nhuận: "John"

Tôi muốn chuyển đổi này để 'John'

Tôi đã cố gắng rất nhiều biến thể của như sau, nhưng tôi không bao giờ có thể thay thế dấu nháy kép bằng dấu ngoặc đơn:

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

Ai có thể khai sáng cho tôi không?

Mục tiêu của tôi là để viết những dòng này vào một file XML:

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

1. 'Thay thế' trả về một chuỗi * mới * 2. Tại sao lại chọn với dữ liệu đang thực hiện vào' WriteAttributeString'? (Nó phải được mã hóa "chính xác" trong cả hai trường hợp.) –

+0

Điều này là do tôi cần nó ở định dạng đó trong thẻ SD được đọc bởi một thiết bị đọc nó tìm kiếm dấu nháy đơn - đó là cách nó ... – user2058253

Trả lời

16

Lý do

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

không hoạt động là string là không thay đổi. Bạn cần phải sử dụng

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

để thay thế. Đây là demo on ideone.

1

Tôi đoán bạn không nhập "John" vào hộp văn bản, nhưng chỉ John và bạn thấy dấu ngoặc kép xung quanh chuỗi khi bạn đặt điểm ngắt và đang xem biến trong phòng thu trực quan?

Nếu có, sau đó nhận ra rằng các dấu ngoặc kép không có một phần của chuỗi, nhưng chỉ cho bạn biết rằng giá trị là một chuỗi. Chúng được thêm vào bởi trình gỡ rối. Nếu bạn phải làm:

Console.WriteLine(ptFirstName); 

bạn sẽ không thấy dấu ngoặc kép.

+0

Vì vậy, tôi đoán tôi đã được chuyển đổi đúng cách tất cả cùng. Và khi tôi viết vào tập tin xml của tôi, và tôi muốn có tập tin xml hiển thị 'John' thay vì "John" như trong ví dụ sau, tôi đi lên ...

Xem http://msdn.microsoft.com/en-ca/library/system.xml.xmltextwriter.quotechar.aspx để biết chi tiết.

Các vấn đề liên quan