2014-10-02 84 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

相关问题