web-dev-qa-db-ja.com

JavaでCharSequenceをStringに変換する方法は?

Java CharSequenceStringに変換するにはどうすればよいですか?

174
Belgi

toString() メソッドを呼び出します。

このシーケンス内の文字を含む文字列を、このシーケンスと同じ順序で返します。文字列の長さは、このシーケンスの長さになります。

310
Mike Samuel

ここには微妙な問題があり、それはちょっとした落とし穴です

toString()メソッドには、Objectに基本実装があります。 CharSequenceはインターフェイスです。 toString()メソッドはそのインターフェイスの一部として表示されますが、コンパイル時にそれをオーバーライドして、CharSequencetoString()メソッドのjavadocがtoString()メソッドに追加する追加の制約に従うことを強制するものはありません。つまり、charAt()によって返される順序で文字を含む文字列を返す必要があるということです。

あなたのIDEは、あなたがおそらくそうするべきです _toString()をオーバーライドすることを思い出させることであなたを助けさえしません。たとえば、intellijでは、新しいCharSequence実装を作成する場合に表示されます: http://puu.sh/2w1RJtoString()がないことに注意してください。

任意のCharSequencetoString()に依存している場合、CharSequenceの実装者が適切に仕事をすれば、それはshould動作します。しかし、不確実性を完全に回避したい場合は、次のようにStringBuilderおよびappend()を使用する必要があります。

final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
86
fragorl

String.valueOf()を直接使用できます

String.valueOf(charSequence)

これはtoString()と同じですが、実際にtoStringを呼び出す前にcharSequenceでnullチェックを行います。

これは、メソッドがcharSequenceまたはnullの値を返すことができる場合に役立ちます。

13
Abhishek Batra