2013-01-23 46 views
71

dấu ngoặc kép có thể được thoát như thế này:thoát dấu ngoặc kép trong chuỗi

string test = @"He said to me, ""Hello World"". How are you?"; 

Nhưng điều này bao gồm việc thêm nhân vật " vào chuỗi. Có một hàm C# hoặc phương thức khác để thoát khỏi dấu nháy kép để không yêu cầu thay đổi chuỗi không?

+3

bạn có thể sử dụng \ "Hello World \" như thế này – Pandian

+0

Bạn thực sự muốn kết quả là gì? "" trở thành "trong một chuỗi chữ. – Roel

Trả lời

103

số

Hoặc sử dụng literals chuỗi đúng nguyên văn như bạn có, hoặc loại bỏ các " bằng xuyệc ngược.

string test = "He said to me, \"Hello World\" . How are you?"; 

Chuỗi đã không thay đổi trong cả hai trường hợp - có một đơn thoát" trong đó. Đây chỉ là một cách để nói với C# rằng ký tự là một phần của chuỗi và không phải là một terminator chuỗi.

5

Bạn đang hiểu nhầm thoát.

Thêm " ký tự là một phần của chuỗi ký tự; chúng được biên dịch bởi trình biên dịch dưới dạng đơn".

Giá trị thực tế của chuỗi của bạn vẫn là He said to me , "Hello World".How are you ?, vì bạn sẽ thấy nếu bạn in nó khi chạy.

26

Bạn có thể sử dụng dấu gạch chéo ngược theo cách nào đó;

string str = "He said to me, \"Hello World\". How are you?"; 

Nó in;

He said to me, "Hello World". How are you? 

cùng bản in chính xác;

string str = @"He said to me, ""Hello World"". How are you?"; 

Đây là DEMO.

" vẫn là một phần của chuỗi của bạn.

Kiểm tra Escape SequencesString literals từ MSDN.

3

Vui lòng giải thích sự cố của bạn. Bạn nói:.?.

Nhưng điều này bao gồm việc thêm nhân vật "vào chuỗi

vấn đề gì đó là bạn không thể gõ string foo = "Foo"bar"";, bởi vì đó sẽ gọi một lỗi biên dịch Đối với các thêm phần, về kích thước chuỗi đó là không đúng sự thật:

@"""".Length == "\"".Length == 1 
12

trong C# bạn có thể sử dụng dấu chéo ngược để đặt các ký tự đặc biệt để chuỗi của bạn Ví dụ, để đặt", bạn nee. d để viết \ ". Có rất nhiều các ký tự mà bạn viết bằng cách sử dụng dấu chéo ngược: Dấu gạch chéo ngược với một số:

  • \ 000 rỗng
  • \ 010 BackSpace
  • \ 011 ngang tab
  • \ 012 dòng mới
  • \ 015 vận chuyển trở lại
  • \ 032 thay
  • \ 042 nháy kép
  • \ 047 giá duy nhất
  • \ 134 xuyệc ngược
  • \ 140 dấu huyền

Dấu gạch chéo ngược với nhân vật Othe

  • \ a Bell (cảnh báo)
  • \ b Backspace
  • \ f Formfeed
  • \ n Dòng mới
  • \ r Vận chuyển trở lại
  • \ t tab ngang
  • \ v tab dọc
  • \' báo giá đánh dấu đơn
  • \" dấu ngoặc kép
  • \ Dấu gạch chéo ngược
  • \? Literal dấu chấm hỏi
  • ký tự \ ooo ASCII trong ký hiệu bát phân
  • \ x ký tự ASCII hh trong ký hiệu thập lục phân
  • \ x hhhh Unicode kí tự trong mã thập lục phân nếu dãy thoát này được sử dụng trong một rộng ký tự liên tục hoặc một Unicode chuỗi chữ. Ví dụ: WCHAR f = L '\ x4e00' hoặc WCHAR b [] = L "Ký tự Trung Quốc cho một là \ x4e00".
Các vấn đề liên quan