Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字节[]转换为字符串时保留\n_Java_Android_String_Bytearray - Fatal编程技术网

Java 从字节[]转换为字符串时保留\n

Java 从字节[]转换为字符串时保留\n,java,android,string,bytearray,Java,Android,String,Bytearray,我有字节数组,我希望将它们转换为字符串,直到收到一个\n,然后我想创建一个新字符串。比如: if (dataReceived.charAt(i) != '\n') { parseCommand = parseCommand + dataReceived.charAt(i); } else if (dataReceived.charAt(i) == '\n') { parseCommand = ""; } 但是,当我从字节[]转换为字符串时,没有\n要测试该字符串的。我怎样才能

我有字节数组,我希望将它们转换为字符串,直到收到一个\n,然后我想创建一个新字符串。比如:

if (dataReceived.charAt(i) != '\n') {
    parseCommand = parseCommand + dataReceived.charAt(i);

} else if (dataReceived.charAt(i) == '\n') {
    parseCommand = "";
}
但是,当我从字节[]转换为字符串时,没有\n要测试该字符串的。我怎样才能保存它们?最好的方法是什么

缓冲传入的字节数组/块,直到我有一个完整的行(例如当收到换行符时),然后从这些字节数组中创建字符串,或者我可以将它们保存在一个字符串中,这样做更好吗?

也许你应该试试


试着这样做:

char c = dataReceived.charAt(i);

if (c != '\n' && c != '\r')
    parseCommand = parseCommand + c;
else
    parseCommand = "";

你能粘贴你用来将字节[]转换成字符串的代码吗?我只需要dataReceived=新字符串(数据,“UTF-8”);如果有更好的方法,很容易更改。您是否尝试过查找
\r\n
?到目前为止,我认为如果有\r\n,如果我搜索\r\n就会找到它?但是您当前的代码将忽略
\r
,这会得到一整行,并说收到的下一个字节是换行符,即使没有换行符。因此,如果我以两字节数组的形式接收测试,\n,“test”和“ing”将计为2行。我不知道您在说什么。由于我以块的形式接收字节数组,此方法会生成错误的换行符。因此,我可能会每5个字节接收一个\n数组,但这会将其计为5行而不是一行。在if-语句中,这不是应该是
|
吗?现在它不会检测到
c='\r'
@Henrik:是的,谢谢你的更正:)这很好是的,谢谢。我的问题似乎不是代码本身,而是不时跳过字符。这似乎是随机的。例如,有时是消失的\n字符,有时是正常字符。“IP地址”可以显示为“IP地址”,例如,它也不会附加
\n
char c = dataReceived.charAt(i);

if (c != '\n' && c != '\r')
    parseCommand = parseCommand + c;
else
    parseCommand = "";