今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

java.lang.StringBuffer

StringBuffer#append() で、バイナリ値を追加したかった。
たとえば、RS-232C使った通信ソフトだと、こんなん書きたい。

    StringBuffer sb = new StringBuffer();
    sb.append(STX);
    sb.append("hoge");
    sb.append(ETX);

でも、バイナリ値を文字列に追加するようなメソッドは無かった。
STXやETXは、悲しいかな、整数値の文字列表現で追加されてしまう。
いろいろ試したがバイナリ値は追加できない。
可変長文字列でバイナリ値を扱いたいなら、こんなメソッドを作っておいて、

    private void append(StringBuffer sb, char c) {
        sb.setLength(sb.length() + 1);
        sb.setCharAt(sb.length(), c);
    }

sb.append(c); するかわりに append(sb, c); とするのがいいかも。