2013-09-21 206 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...方法讀取各個字段。