2014-10-02 85 views
1

如果已經回答了這個問題,我必須提前道歉,但到目前爲止,我還沒有能夠在論壇上找到這個問題的答案。將文本文件分割成兩個單獨的數組

我正在研究項目歐拉問題,問題54是準確的,我需要讀取1000行數據,每行包含兩個隨機生成的撲克牌手,該線的前半部分是玩家1的手牌,第二個是玩家2的。

下面是文檔的佈局的一個例子:

8CTSKC9H4S 7D2S5D3SAC

5CAD5DAC9C 7C5H8DTDKS

3H7H6SKCJS QHTDJC2D8S

TH8H5CQSTC 9H4DJCKSJS

我已經這樣做了多遠手動將兩行文件複製每行的第二個「手」並將其添加到新文件中換貨。然而,我做了兩次,並提出了兩個不同的結果,所以我認爲我在所有複製的某個地方發生了錯誤。 下面是我用上面的函數的一個例子:

ArrayList<String> player1 = new ArrayList<String>(); 
    ArrayList<String> player2 = new ArrayList<String>(); 
    String file1 = "FilePath1"; 
    String file2 = "FilePath2"; 
    Scanner input1 = new Scanner(new File(file1)); 
    while(input1.hasNext()) { 
     player1.add(input1.nextLine()); 
    } 
    Scanner input2 = new Scanner(new File(file2)); 
    while(input2.hasNext()) { 
     player2.add(input2.nextLine()); 
    } 

    input1.close(); 
    input2.close(); 

我想知道的是,我怎麼能只讀第一手成一個ArrayList,然後只秒針到另一個。無需創建兩個單獨的文檔並且可能會危及數據安全。我不知道如何在這裏使用Split功能,如果這是要走的路。我對編程相當陌生,我試圖自我教導,所以我很抱歉,如果這是一個非常簡單的問題。

非常感謝你提前

+0

看看這個http://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java – 2014-10-02 13:06:38

+0

謝謝Abdul,我不能相信我錯過了那個:/ – Richard 2014-10-02 17:25:19

+0

那就好了,我通過google找到了它) – 2014-10-02 17:46:28

回答

1

您可以在空間分割(所有空格)

例如:

String currLine = input1.nextLine(); 
//This only needed if you are not sure if the input will have leading/trailing space 
currLine = currLine.trim(); 
String[] split = currLine.split("\\s+"); 
//Ensuring the line read was properly split 
if(split.length == 2) { 
    //split[0] will have the first hand 
    player1.add(split[0]); 
    //split[1] will have the second hand 
    player2.add(split[1]); 
} 
+0

非常感謝你的幫助,這就像一個魅力:)。如果我的聲望允許,我會贊成:)。 – Richard 2014-10-02 16:55:17

相關問題