2016-11-29 104 views
0

我有一個純文本文件,格式如下:閱讀與多個標誌java的一個純文本文件

-~-http://www.google.com 
    [email protected]+ 
    [email protected] Google 
-~-http://www.somewebpage.com 
    [email protected] 
     Google 
     Search 
    [email protected] to Google 
-~-http://www.mycoolwebpage.com 
    [email protected] is Awesome!!! 

我需要在鏈接閱讀(記爲 - 〜 - ),並將其放置在一個List<String>調用鏈接。我還需要讀取輸出(用 - @ - 表示)並將它們放入一個名爲outputs的List<List<String>>中。我需要閱讀所有文本,直到下一個標記( - 〜 -/\ t - @ - ),並且我還需要知道文本之前的哪個標記。我試過Delimiter,但我不確定我能夠知道哪個Delimiter之前String

+0

你需要發佈一些你的代碼給人來幫助你。 –

+0

只需讀取每行並在代碼中處理它,而不必在讀取文件時使用特殊的分隔符。 –

+0

@Alexey Soshin我想弄清楚我應該怎麼做。我有的代碼是一個方法調用:掃描器s =新的掃描器(新文件(「myFile.txt」)); – mpowell48

回答

1

我會避免使用掃描器分隔符。只要閱讀每一行並在代碼中處理它。對於每一行,首先丟棄(或忽略)任何前導空格。然後,如果該行以分隔符開頭,請包裝任何掛起的鏈接/輸出(請參閱下面的含義)。然後,

  • 如果符合-~-開始,從那裏到行尾的文本是一個鏈接的開始,所以開始積累鏈接文字(中,說StringBuilder)。此外,如果您有一個非空的輸出列表,請將列表追加到列表output列表中。
  • 如果它以[email protected]開頭,它是輸出的開始,所以開始累積輸出文本。
  • 如果它既不是分隔符,也是延續線,所以將其餘的行附加到當前的鏈接/輸出累加器(可能在追加空格或換行符後)。

要「收官之任何未決的鏈接/輸出」,在StringBuilder的當前內容轉換爲String,並添加到相應的列表。還要將任何非空輸出列表追加到output

在這裏有很多簿記的細節我沒有提到,但這是基本的想法。

+0

正是我在找的東西。謝謝。 – mpowell48