::这里是新手::
我有一个文本文件,其中包含类似
COM22:15:55:09 20.09.2013VOLT=224
我想阅读这一行并将其分开以获得
15:55:09 20.09.2013
接着
伏=224
此时我正在使用 br.readLine() 读取整行...有什么办法可以限制 br.readline() 从某个编号的字符开始(例如行中的第 4 个字符)并以某个结束(例如第8个)???
不要试图限制字符,而是像这样阅读整行
String line = br.readLine();
从我看到的评论中,你想解析
<COM22: 15:55:09 20.09.2013>VOLT=224
现在把它分成几部分。第一部分是
int leftAngleIdx = line.indexOf('<');
int rightAngleIdx = line.indexOf('>');
//Some error handling code if left >= right or if any of them were -1.
String comAndDate = line.substring(leftAngleIdx + 1, rightAngleIdx); //substring operates on half open intervals.
//Similarly using substring operations. Extract the date part from comAndDate
String volt = line.substring(rightAngleIdx + 1); // After '>'
您也可以使用正则表达式,也许稍后。
我认为最简单的方法是使用正则表达式(如果您不知道正则表达式是什么,请在此处阅读)。这是一个可能对您的将军有所帮助的正则表达式(因为使用像 4 和 8 这样的幻数往往不好) -
^.*?\s([\d: \.]*)(.*$)
在这种情况下,捕获组 1 将是15:55:09 20.09.2013
,组 2 将是Volt=224
有什么办法可以限制 br.readline() 从某个编号字符开始[等等]
不。
如果要使用BufferedReader.readLine()
,则需要使用正则表达式或其他东西将行拆分或解析为组件。
或者,您可以使用Scanner
该类及其next...
方法来读取各个字段。