2011-07-06 28 views
18

Cách hiệu quả nhất để chuyển một char đơn lẻ sang phương thức mong đợi một CharSequence là gì?Cách hiệu quả nhất để chuyển đổi một char thành CharSequence

Đây là những gì tôi đã có:

textView.setText(new String(new char[] {c})); 

Theo the answers given here, đây là một cách hợp lý để làm việc đó mà đầu vào là một mảng ký tự. Tôi đã tự hỏi nếu có một phím tắt lén lút tôi có thể áp dụng trong trường hợp đơn char.

Trả lời

34
textView.setText(String.valueOf(c)) 
3

Shorthand, như trong ít nhất gõ ký tự có thể:

c+""; // where c is a char 

Trong đầy đủ:

textView.setText(c+""); 
1
char c = 'y'; 
textView.setText(""+c); 
9

Nhìn vào việc thực hiện các phương pháp Character.toString(char c) tiết lộ rằng họ sử dụng hầu hết các cùng mã bạn sử dụng:

public String toString() { 
     char buf[] = {value}; 
     return String.valueOf(buf); 
    } 

Để dễ đọc, bạn chỉ nên sử dụng Character.toString(c).

Một cách hiệu quả có lẽ sẽ là

new StringBuilder(1).append(c); 

Đó chắc chắn hiệu quả hơn rằng việc sử dụng các nhà điều hành + bởi vì, theo javadoc:

Ngôn ngữ Java cung cấp hỗ trợ đặc biệt cho các nhà điều hành chuỗi nối (+), và để chuyển đổi các đối tượng khác thành chuỗi. String nối được thực hiện thông qua các lớp StringBuilder (hoặc StringBuffer) và phương pháp append nó

+1

Cảm ơn bạn đã giải thích. Tôi đang đi với câu trả lời được chấp nhận như tôi nghi ngờ lớp String có thể có một bảng tích hợp các chuỗi ký tự đơn để hỗ trợ hàm valueOf() một cách hiệu quả. –

2

Một giải pháp mà không nối là thế này:

Character.valueOf(c).toString(); 
3

Các CharSequence nhỏ gọn nhất mà bạn có thể nhận được khi bạn có một số ít các ký tự là CharBuffer. Để khởi tạo điều này với giá trị char của bạn:

CharBuffer.wrap(new char[]{c}); 

Điều đó đang được nói, sử dụng Strings dễ đọc hơn và dễ làm việc hơn.

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