2011-08-30 36 views
6

Tôi đang cố gắng đưa dấu ngoặc kép vào chuỗi của mình để thêm vào hộp văn bản, tôi đang sử dụng mã này.Bao gồm các dấu trích dẫn bên trong một chuỗi?

t.AppendText("Dim Choice" & count + " As String = " + "Your New Name is: & pt1 + "" & pt2 +" + vbNewLine) 

nhưng nó không làm việc, tôi muốn nó ra như vậy:

Dim Choice As String = "Your New Name is: NAME_HERE" 

Trả lời

13

Bạn phải thoát khỏi dấu ngoặc kép. Trong VB.NET, bạn sử dụng dấu ngoặc kép - "":

t.AppendText("Dim Choice" + count.ToString() + " As String = ""Your New Name is: " + pt1 + " " + pt2 + """" + vbNewLine) 

này sẽ in như:

Dim Choice1 As String = "Your New Name is: NAME HERE" 

Giả sử count = 1 (Integer), pt1 = "NAME" và pt2 = "ĐÂY ".

Nếu count không phải là số nguyên, bạn có thể hủy cuộc gọi ToString().

Trong C#, bạn thoát khỏi "bằng cách sử dụng một \, như thế này:

t.AppendText("string Choice" + count.ToString() + " = \"Your New Name is: " + pt1 + " " + pt2 + "\"\n"); 

Trong đó sẽ in như:

string Choice1 = "Your new Name is: NAME HERE"; 
+0

Trên bit cuối cùng của mã "" "+ vbNewLine) đã, đang và báo lỗi:" Chuỗi liên tục phải kết thúc với dấu ngoặc kép " –

+0

Tôi đã cập nhật phần cuối của mã để sử dụng 4" - nghĩa là "" "". Ban đầu tôi đặt ba tai nạn. Xin lỗi vì sự nhầm lẫn. – Tim

0

Bạn phải thoát khỏi chúng, tuy nhiên bạn có thể không tự động tạo biến tên như bạn đang cố gắng ở đây:

"Dim Choice" & count + " As String = " 

này sẽ chỉ là một chuỗi.

+0

Tôi không nghĩ rằng OP đang cố gắng tự động tạo ra các tên biến, kể từ khi ông nói rằng ông đang cố gắng để đặt chuỗi trong một TextBox. – Tim

+0

Ah okay đủ công bằng –

0

Bạn có thể sử dụng Chr Function với quotes ASCII Code: 34 để có một kết quả như thế này:

t.Append(Dim Choice As String = " & Chr(34) & "Your New Name is: NAME_HERE" & Chr(34)) 
+2

Không sử dụng 'Chr' ở đây, nó chỉ làm cho nó ít dễ đọc hơn. Không ai sẽ sử dụng '(char) 34' trong C#, bạn sẽ sử dụng' \ "'. Điều này cũng đúng trong VB –

8

Như Tim đã nói, chỉ đơn giản là thay thế từng xảy ra " bên trong chuỗi với "".

Bên cạnh đó, sử dụng String.Format để làm cho mã dễ đọc hơn:

t.AppendText(_ 
    String.Format(_ 
     "Dim Choice{0} As String = ""Your New Name is: {1} {2}""{3}", _ 
     count, pt1, pt2, vbNewLine) 

Tùy thuộc vào loại t của bạn, thậm chí có thể là một phương pháp hỗ trợ định dạng chuỗi trực tiếp, tức là có lẽ bạn thậm chí có thể đơn giản hóa trên đến những điều sau đây:

t.AppendText(_ 
    "Dim Choice{0} As String = ""Your New Name is: {1} {2}""{3}", _ 
    count, pt1, pt2, vbNewLine) 
+1

+1 cho String.Format. Tôi là một fan hâm mộ lớn của khả năng đọc mã (mặc dù tôi giữ quên những thứ đơn giản như String.Format ... có lẽ tôi sẽ giảm xuống khi tôi lớn lên :)). – Tim

0

Mặc dù thoát chuỗi là cách đúng làm việc nó không phải luôn luôn dễ dàng nhất để đọc. Xem xét cố gắng để tạo ra các chuỗi sau:

Blank "" Full "Full" and another Blank "" 

Để thoát khỏi điều này bạn cần phải làm như sau:

"Blank """" Full ""Full"" and another Blank """"" 

Nhưng nếu bạn sử dụng String.Format với Chr(34) bạn có thể làm như sau:

String.Format("Blank {0}{0} Full {0}Full{0} and another Blank {0}{0}", Chr(34)) 

Đây là tùy chọn nếu bạn thấy dễ đọc hơn.

0

Trong VB .Net bạn có thể làm điều này:

Giả sử count = 1 (Integer), pt1 = "NAME" and pt2 = "HERE".

t.AppendText("Dim Choice" & count.Tostring() + " As String ="+ CHR(34) + "Your New Name is: " & pt1 + "_" & pt2 +CHR(34) + vbNewLine) 

Sản lượng sẽ Dim Choice As String = "Tên mới của bạn là: NAME_HERE"

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