Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

textView.setText(String.valueOf(c))

Ответ 2

Анализ реализации метода 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) и его метод добавления

Ответ 3

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

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

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

textView.setText(c+"");

Ответ 4

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

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

Говоря об этом, использование Strings является более удобным и удобным для работы.

Ответ 5

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

Character.valueOf(c).toString();

Ответ 6

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