次のコードは、明らかに、かなり奇妙な結果をもたらします。
char[] data = new char[5];
data[0] = 'a';
data[1] = 'b';
data[2] = 'c';
out.println("'" + new String(data) + "'");
'abc□□'
配列全体が文字で最後まで埋められない可能性があることを考慮して、文字配列から文字列を作成する方法はありますか?
質問の理由:メソッドを使用する場合Reader.read(char[])
、入力する文字配列を指定します。運が良ければ、ストリームの最後に到達したときに、完全には入力されないと想定できます。これを に追加できる文字列に変換する方法を考えていましたStringBuffer
。ただし、このread
メソッドは実際には読み取ったバイト数を返すことに注意してStringBuffer.append(char[], int, int)
ください。これは、 と組み合わせて使用できると思います。しかし、それでも私が興味を持っているものであり、グーグルで見つけたものではないので、この質問はここで答えを得るのに良いと思います;)