Наиболее эффективный способ преобразования одного символа в CharSequence

Каков наиболее эффективный способ передать один символ методу, ожидающему CharSequence?

Это то, что у меня есть:

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

Согласно приведенным здесь ответам , это разумный способ сделать это, когда ввод представляет собой массив символов. Мне было интересно, есть ли скрытый ярлык, который я мог бы применить в случае с одним символом.

 textView.setText(String.valueOf(c)) 

Рассмотрение реализации метода Character.toString(char c) показывает, что они используют почти тот же код, который вы используете:

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

Для удобства чтения вы должны просто использовать Character.toString( c ) .

Другим эффективным способом, вероятно, будет

 new StringBuilder(1).append(c); 

Это определенно более эффективно, если использовать оператор + потому что, согласно javadoc:

Язык Java обеспечивает специальную поддержку оператора конкатенации строк (+) и для преобразования других объектов в строки. Конкатенация строк реализуется через класс StringBuilder (или StringBuffer ) и его метод добавления

Сокращение, как и в наименьшем количестве типизированных символов:

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

В полном объеме:

 textView.setText(c+""); 

Решение без конкатенации таково:

 Character.valueOf(c).toString(); 

Самый компактный CharSequence, который вы можете получить, когда у вас есть несколько символов, является CharBuffer. Чтобы инициализировать это с помощью вашего значения char:

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

При этом, используя Strings, это более удобный и удобный интерфейс.

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