2014-05-06 18 views
5

Tôi đang cố gắng kiểm tra xem chuỗi có bằng dấu ngoặc kép hay không ("). Tuy nhiên, string.equals(""") không hoạt động vì nó cho rằng tôi có thêm dấu ngoặc kép. Làm cách nào để kiểm tra xem chuỗi có bằng dấu ngoặc kép không?Kiểm tra xem chuỗi có bằng dấu ngoặc kép

Trả lời

10
str.equals("\""); 

\ được sử dụng làm ký tự thoát để thông báo cho trình biên dịch ký tự tiếp theo được diễn giải theo nghĩa đen. Trong trường hợp này, nó gây ra các " để được hiểu là một ký tự trong chuỗi thay vì như một dấu ngoặc kép kết thúc. \" được sử dụng để đại diện cho ".

Để được an toàn hơn với chuỗi null, bạn cũng có thể làm:

"\"".equals(str); 

này sẽ trả về false nếu str là null thay vì ném một NullPointerException.

1

Sử dụng ký tự thoát \. Điều này cho phép nó biết ký tự tiếp theo nên được đọc dưới dạng văn bản và không được biên dịch bởi trình biên dịch. string.equals("\"") sẽ hoạt động.

-1

Vui lòng đọc bài viết sau về "Chuỗi thoát".

http://en.wikipedia.org/wiki/Escape_sequences_in_C

Dưới đây là một phương pháp nhỏ trong Java:

private boolean equalsDoubleQuote(String string)  
{ 
    /* 
    * The compiler will not be able to read three double-quote characters in 
    * align. 
    * In this case, you use a the back-slash character. 
    * It will 'escape' the character after it, allowing the compiler to 
    * read it properly 
    */ 
    return string.equals("\""); 
} 

Tôi không chắc chắn lý do tại sao tôi đã xuống bình chọn, nhưng đây là một sự so sánh nghèo, trần với tôi. Việc đóng gói sau đây sẽ không hoạt động vì trình biên dịch sẽ tìm thấy */ đầu tiên và dừng nhận xét khối ở đó, mong đợi đoạn mã sau sẽ là mã.

Điều này rõ ràng không phải là so sánh tốt nhất (vì bạn không thể thoát chuỗi, */). Khái niệm nên rõ ràng.

void example() 
{ 
    /* 
    * 
    * What does the compiler do when I place 
    * 
    *   a */ right here 
    * 
    */ 
} 
2

string.equals("\"") sẽ hoạt động. Chức năng "\" này là ký tự thoát.

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