web-dev-qa-db-ja.com

単一の文字をCharSequenceに変換する最も効率的な方法

CharSequenceを期待するメソッドに単一のcharを渡す最も効率的な方法は何ですか?

これは私が持っているものです:

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

ここで与えられた答え によると、これは入力が文字配列である場合の賢明な方法です。 1文字の場合に適用できる卑劣なショートカットがあるかどうか疑問に思っていました。

27
Graham Borland
textView.setText(String.valueOf(c))
44
eljenso

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)クラスとその追加メソッド

11
trutheality

少数の文字がある場合に取得できる最もコンパクトなCharSequenceは、CharBufferです。これをchar値で初期化するには:

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

そうは言っても、文字列を使用すると、かなり読みやすく、操作が簡単になります。

4
Bruce Hamilton

可能な限り少ないタイプの文字の短縮形:

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

略さずに:

textView.setText(c+"");
3
Charles Goodwin

連結なしのソリューションは次のとおりです。

Character.valueOf(c).toString();
2
phlogratos
char c = 'y';
textView.setText(""+c);
1
Grekz