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 回答