2013-05-21 40 views
24

Trong Java, \' biểu thị ký tự dấu nháy đơn (dấu nháy đơn) và \" biểu thị ký tự dấu ngoặc kép (dấu ngoặc kép).Trong Java, tôi có nên thoát khỏi dấu nháy đơn (') trong chuỗi (được trích dẫn kép) không?

Vì vậy, String s = "I\'m a human."; hoạt động tốt. Tuy nhiên, String s = "I'm a human." cũng không tạo ra bất kỳ lỗi biên dịch nào.

Tương tự, char c = '\"'; hoạt động, nhưng char c = '"'; cũng hoạt động.

Trong Java, sử dụng nào tốt hơn? Trong HTML hoặc CSS, những thứ như style="font-family:'Arial Unicode MS';" thường xuyên hơn (và đối với các thẻ như vậy, tôi nghĩ đó là cách duy nhất để sử dụng dấu ngoặc kép), nhưng trong Java, tôi thường thấy mọi người sử dụng các ký tự thoát như "I\'m a human."

+2

tôi sẽ không sử dụng dấu gạch chéo trừ khi nó được bảo hành. Vì vậy, "Tôi là một con người." – vikingsteve

+0

Tôi không hoàn toàn chắc chắn về dấu nháy đơn trong chuỗi vì im không phải là hậu quả bằng cách sử dụng cái khác ở đó. Nhưng tôi khuyên bạn nên thoát khỏi dấu ngoặc kép trong các ký tự bởi vì đôi khi bạn sau đó quyết định thay đổi những gì bạn muốn làm và thay đổi biến ký tự của bạn thành chuỗi. tức là khi bạn phát hiện ra rằng bạn muốn thay thế nhiều ký tự bằng 'String.replace()' –

+1

Bạn đã thử nghiệm nó chưa? –

Trả lời

32

Bạn không cần phải thoát khỏi ký tự ' trong một chuỗi (được bọc trong ") và bạn không phải thoát khỏi một ký tự " trong một char (được gói trong ').

+0

nhưng bạn có thể và nó là hợp pháp, là những gì bạn đang nói, phải không? – Mishax

+0

@Mishax khá rõ ràng. Cách sử dụng duy nhất của ký tự thoát là ** cho ** trình biên dịch không xử lý ký tự ('/ ") làm ký tự đóng. – Bateman

+1

@Bateman Tôi không đồng ý với tuyên bố của bạn - ký tự thoát có thể được sử dụng trong chuỗi ký tự với \ n để chỉ ra một dòng mới hoặc một \ t cho một tab, gợi ý của tôi cho Cory Kendall là câu trả lời của anh ta không sử dụng các thuật ngữ chính thức như "hợp pháp nhưng không bắt buộc", mà chính xác hơn là – Mishax

10

Thực hành tốt nhất là chỉ để thoát khỏi các dấu ngoặc kép khi bạn cần - nếu bạn có thể thoát ra mà không cần thoát nó, thì hãy làm!

Những lần duy nhất bạn nên cần phải thoát khỏi được khi cố gắng đưa " bên trong một chuỗi, hoặc ' trong một nhân vật:

String quotes = "He said \"Hello, World!\""; 
char quote = '\''; 
+15

Umm ... nó ở đâu Hoặc là bạn chỉ cần relabelling sở thích cá nhân của bạn như là "thực hành tốt nhất"? –

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