2009-09-08 50 views
204

Làm thế nào để chuyển đổi String thành CharSequence trong Java?Làm thế nào để chuyển đổi một chuỗi thành CharSequence?

+12

Câu hỏi đặt ra là loại phi sensical. Chuyển đổi một chuỗi thành một CharSequence giống như chuyển đổi một cây sáo sang một nhạc cụ. Một chuỗi đã là một CharSequence. Lớp String thực hiện giao diện CharSequence. –

+2

Sự nhầm lẫn của OP có thể xuất phát từ việc không biết ý nghĩa của việc [lập trình cho một giao diện] (http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface) – Raedwald

+7

@JeffScottBrown câu hỏi thực sự có ý nghĩa, đó là một kỳ quan hợp pháp cho bất cứ ai đọc thông qua tài liệu Android hoặc Java và thiếu các chi tiết mà CharSequence không phải là một lớp học. Bình luận của bạn đã giúp tôi, nhưng nếu câu hỏi không được diễn đạt theo cách của nó, tôi sẽ không tìm thấy nó và đã dành nhiều thời gian tìm kiếm một câu trả lời hơn là nó thực sự có giá trị;) – Kheldar

Trả lời

235

Kể từ StringLÀ-ACharSequence, bạn có thể vượt qua một String bất cứ nơi nào bạn cần một CharSequence, hoặc chỉ định String đến một CharSequence:

CharSequence cs = "string"; 
String s = cs.toString(); 
foo(s); // prints "string" 

public void foo(CharSequence cs) { 
    System.out.println(cs); 
} 

Nếu bạn muốn chuyển đổi một CharSequence đến một String, chỉ cần sử dụng phương thức toString phải được triển khai bằng mọi cách triển khai cụ thể CharSequence.

Hy vọng điều đó sẽ hữu ích.

+13

Ngoại trừ việc bạn không thể gán một' CharSequence' cho một 'Chuỗi' mà không có một diễn viên rõ ràng. – gustafc

+1

Sửa lỗi ví dụ, cảm ơn. Tôi có nghĩa là cách khác xung quanh, tức là, gán một 'String' cho một' CharSequence'. –

+1

Tôi bị nhầm lẫn bởi mã này "CharSequence cs =" string ";". Làm thế nào chúng ta có thể nhanh chóng một CharSequence? Đó không phải là một Giao diện sao? (Xin lỗi tôi vẫn đang học Java). – Mugen

34

câu trả lời thẳng:

String s = "Hello World!"; 

// String => CharSequence conversion: 

CharSequence cs = s; // String is already a CharSequence 

CharSequence là một giao diện, và lớp String thực hiện CharSequence.

3

Bạn có thể sử dụng

CharSequence[] cs = String[] {"String to CharSequence"}; 
+7

Chào mừng bạn đến với Stack Overflow Lucas. Vui lòng cung cấp giải thích nhiều hơn đoạn mã. Điều này có thể hiển nhiên đối với chúng tôi, nhưng giúp những người khác cho họ biết tại sao mã này trả lời câu hỏi. –

+0

Việc gói một chuỗi vào một mảng không giúp làm cho một điểm mà String là một CharSequence (và do đó mảng CharSequence đó là mảng của String). – tishma

+0

CharSequence [] cs = new CharSequence [] {"String to CharSequence"}; –

9

CharSequence là một giao diện và String là một của việc triển khai khác hơn StringBuilder, StringBuffer và nhiều người khác.

Vì vậy, cũng giống như bạn sử dụng InterfaceName i = new ItsImplementation(), bạn có thể sử dụng CharSequence cs = new String("string") hoặc đơn giản là CharSequence cs = "string";

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