使用 java 我如何阅读每行都有分隔符 CRLF(\r\n) 的段落。例如
4\r\n 这个\r\n 8\r\n 响应\r\n
我想提取 4 并将其存储到缓冲区中,然后读取 8 并存储本段。请帮我。
我不太确定您需要什么输出,但BufferedReader类将允许您逐行读取文本文件。网上有几个例子。
该readLine
方法将执行以下操作:
读取一行文本。一行被认为是由换行符 ('\n')、回车符 ('\r') 或紧跟换行符的回车符中的任何一个终止的。
用于BufferedReader.readLine()
仅读取行,或者Scanner
如果您想自动解析数字。
我不太确定你必须做什么,但如果你必须从你的文本中获取字符串,你可以按照我的解决方案来做。
这可能不是最好的方法,但它可以使用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