2011-07-06 21 views
18

Tek bir char'i bir CharSequence bekleyerek bir yönteme iletmenin en etkili yolu nedir?Tek bir char'i bir CharSequence'a dönüştürmenin en verimli yolu

Bu bende ne olduğunu:

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

the answers given here göre bu girdi bir karakter dizisi nerede bunu yapmanın mantıklı bir yoldur. Tek char davasında uygulayabileceğim sinsi bir kısayol olup olmadığını merak ediyordum. neredeyse kullandıkları

textView.setText(c+""); 

cevap

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

Steno, en az olduğu gibi olası karakterleri Yazılan Kullandığınız aynı kod:

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

Okunabilirlik için Character.toString(c) kullanmalısınız.

başka etkili yolu muhtemelen Kesinlikle daha verimlidir

new StringBuilder(1).append(c); 

olacağını + operatörü kullanılarak, çünkü javadoc göre:

Java dili bir dizge birleştirme işlemi için özel destek sağlar (+) ve diğer nesnelerin dizelere dönüştürülmesi için. String birleştirme StringBuilder (veya StringBuffer) sınıfı ve onun ekleme yöntemiyle

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

Character.toString(char c) yöntemin uygulanması hem ortaya çıkan bakıyor: Tam olarak

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

:

+1

Açıklama için teşekkürler. String sınıfının muhtemelen valueOf() işlevini etkin bir şekilde desteklemek için tek karakterli Dizeler yerleşik bir tablosuna sahip olduğundan şüphelendiğim için kabul edilen yanıtla gidiyorum. –

2

aracılığıyla uygulanan birleştirme olmadan bir çözüm şudur:

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

en kompakt CharSequence Eğer karakter bir avuç varken alabilirsiniz CharBuffer. char değeri ile bu başlatmak için:

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

, Dizeleri kullanarak adil biraz daha okunabilir ve çalışmak kolaydır.

İlgili konular