0

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

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

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

4

3 回答 3

0

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

readLine方法将执行以下操作:

读取一行文本。一行被认为是由换行符 ('\n')、回车符 ('\r') 或紧跟换行符的回车符中的任何一个终止的。

于 2013-05-10T07:54:30.710 回答
0

用于BufferedReader.readLine()仅读取行,或者Scanner如果您想自动解析数字。

于 2013-05-10T07:51:07.547 回答
0

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

这可能不是最好的方法,但它可以使用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);          
}

这将打印

4

这个

8

回复

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

如果您正在从文件中读取,您应该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){}            
}

现在它只是输出:

4

8

于 2013-05-10T07:22:10.973 回答