Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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读取以CRLF(\r\n)作为分隔符的一组行_Java_Delimiter - Fatal编程技术网

如何使用java读取以CRLF(\r\n)作为分隔符的一组行

如何使用java读取以CRLF(\r\n)作为分隔符的一组行,java,delimiter,Java,Delimiter,如何使用java阅读每行都有分隔符CRLF(\r\n)的段落。 比如说 4\r\n 这是\r\n 8\r\n 响应\r\n 我想提取4并将其存储到缓冲区中,然后读取8并存储此段落。 请帮帮我。我不确定你必须做什么,但是如果你必须从文本中获取字符串,你可以按照我的解决方案来做 这可能不是最好的方法,但它使用StringTokenizer并将\r\n作为分隔符 StringTokenizer st1 = new StringTokenizer("4\r\n This\r\n 8\r\n r

如何使用java阅读每行都有分隔符CRLF(\r\n)的段落。 比如说

4\r\n 这是\r\n 8\r\n 响应\r\n

我想提取4并将其存储到缓冲区中,然后读取8并存储此段落。
请帮帮我。

我不确定你必须做什么,但是如果你必须从文本中获取字符串,你可以按照我的解决方案来做

这可能不是最好的方法,但它使用
StringTokenizer
并将
\r\n
作为分隔符

StringTokenizer st1 = new StringTokenizer("4\r\n This\r\n 8\r\n response\r\n", "\r\n");

//iterate through tokens
while (st1.hasMoreTokens()) {
    String str = st1.nextToken();
    System.out.println(str);          
}
这会打印出来

四,

这个

八,

回应

当然,如果您没有从文件中读取数据,但刚刚获得完整的字符串,并且需要从中提取数据,那么这将非常有用

如果您正在读取文件,您应该检查其他答案,因为
BufferedReader.readLine
是正确的方法

编辑:

以下是新代码:

StringTokenizer st1 = new StringTokenizer("4\r\n This\r\n 8\r\n response\r\n", "\r\n");

//iterate through tokens
while (st1.hasMoreTokens()) {
    String str = st1.nextToken();
    try{
        //Integer.parseInt throws an exception in the input String doesn't represent a number so we catch the exception and we simply skip it. This will just output each number in your string.
        int i = Integer.parseInt(str.trim());
        System.out.println(i);
    } catch (NumberFormatException e){}            
}
现在它只是输出:

四,

八,


使用
BufferedReader.readLine()
只读取行,或者如果您想自动解析数字,请使用
Scanner

我不太确定您需要什么输出,但该类允许您逐行读取文本文件。这里有几个例子

readLine
方法将执行以下操作:

读一行文字。一行被认为是由换行符('\n')、回车符('\r')或紧接着换行符的回车符中的任意一个终止的


文件来自哪里?为什么每个单词前面都有其长度?我不确定我是否理解这个问题,你想读“4”,“This”,“response”,还是像jlordo说的那样,数字是后面单词的长度?我看不到任何需要使用特定分隔符的用例。我想在分块传输编码的情况下读取http响应。每个分块都有大小和分块数据。因此,我只需要大小,每个分块都有分隔符。\r\n在这种情况下,我需要它。使用BufferedReader如何获得所需的4和8整数。我如何拆分它们。谢谢。但我想在输出中包含4并跳过\r\n和“this”我想要8。我该怎么做呢?谢谢。我试过了,我得到了。但是我想用BufferedReader来实现这一点。我想一直读到\r\n,并且只将数字4存储到ByteArrayOutputBuffer中。你能帮我吗?我的意思是我想用while循环作为while(line!=null)来读取上面例子中的数字。4和8我想一直读到\r\n,所以第一次我得到“4\r\n”,然后我只想在ByteArrayOutPutBuffer中存储4。然后我想得到上面的5。如何实现这一点。我想读取上面示例中的数字。4和8使用while循环作为while(line!=null)我想一直读到\r\n所以第一次得到“4\r\n”然后我只想将4存储到ByteArrayOutPutBuffer中。然后我想得到5,如上所述。如何在while循环中实现这一点,以查看读取的行(不包括\r\n)是否为数字。StepTNT上面的回答给出了一种方法。