::这里的新手::
我有一个文本文件,如
COM22:15:55:09 20.09.2013VOLT = 224
我想阅读这一行并将其分开以获取
15:55:09 20.09.2013
然后
伏= 224
此时我正在使用br.readLine()读取整行...有没有什么方法可以限制br.readline()从某个编号的字符开始(例如第4个字符在行中)并结束在一定的(例如第8次)???
答案 0 :(得分:0)
你最简单的方法就是使用正则表达式(如果你不知道什么是正则表达式,请阅读它here)。这是一个可能对你的将军有帮助的正则表达式(因为使用像4和8这样的魔法数字往往很糟糕) -
^.*?\s([\d: \.]*)(.*$)
在这种情况下,捕获组1为15:55:09 20.09.2013
,组2为Volt=224
答案 1 :(得分:0)
有什么方法可以限制br.readline()从某些编号字符开始[等等]
没有
如果您要使用BufferedReader.readLine()
,则需要使用正则表达式或其他东西将行拆分或解析为组件。
或者,您可以使用Scanner
类及其next...
方法来阅读各个字段。
答案 2 :(得分:0)
不要试图限制字符,而是像
一样阅读整行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 '>'
您也可以使用正则表达式,也许稍后。