0

バッファから文字を取り出して文字列を形成するプログラムがあります。

私のプログラムは:

while (i < 5) {
    ch = inStream.read();
    buffer.append((char)ch);
    i++;
}
data = buffer.toString();

上記の私のプログラムでは、文字列を形成するのに5文字しか使用できません。私がやりたいのは、可変長の文字列を使用することです。文字列の長さは、の検出によって異なります<CR>。私が使用しているシリアルデバイスは、常にデータをで終了します<CR>。そうすることで、私の文字列は任意の長さにすることができます。

問題が解決しました。これが私が試し、完璧に機能したものです-300が私の最大値であり、/nも検出したいと仮定します。

私のコード:

while (i < 300) {
    ch = inStream.read();
    if ((ch=='\r')||(ch=='\n')) {
        i = 300;
    }
    buffer.append((char)ch);
    i++;
}
data = buffer.toString();
4

1 に答える 1

2

<CR>「キャリッジリターン」を意味すると仮定すると、次を使用する必要がありますBufferedReader

BufferedReader reader = new BufferedReader(inStream);
String line = null
while ((line = reader.readLine()) != null) {
    // do something with `line`

}
于 2012-05-06T15:52:56.073 に答える