2013-09-21 205 views
1

::新手位置::具体数量阅读文本文件高达字符

我已经具有文本文件中的文本一样

COM22:15时55分09秒20.09.2013VOLT = 224

我想读这条线,并分开它得到

15时55分09秒二零一三年九月二十零日

然后

伏= 224

在使用br.readLine()读取整条生产线......这一次我'有没有什么办法可以限制br.readline()开始来自某个编号的字符(例如第4个字符排列)并结束于某个(例如第8个)???

+0

你真的没有用你正在使用的语言标记这个,但我假设Java? –

+0

哦,我很抱歉...是的,我用java .. –

+0

你确定日期和VOLT部分之间没有空格吗? – bsd

回答

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 '>' 

你也可以使用正则表达式,也许以后。

+0

非常感谢bsd :)这正是我想要的。现在我的代码完全按照我希望它:) –

0

你做这个最简单的方法我认为会使用正则表达式(如果你不知道正则表达式是什么,请阅读它here)。下面是可以帮助您一般(因为用神奇数字像4和8往往是坏)正则表达式 -

​​

在这种情况下捕获组1将15:55:09 20.09.2013和第2组是Volt=224

0

是否有任何方式我可以限制br.readline()从某些编号的字符开始[诸如此类]

如果打算使用BufferedReader.readLine(),则需要使用正则表达式或其他方法将行拆分或分解为组件。

或者,您可以使用Scanner类及其next...方法读取各个字段。