将文本文件中的一行拆分为两个单独的数组

时间:2014-10-02 13:01:57

标签: java arrays string file split

如果这个问题得到解答,我必须事先道歉,到目前为止我还没能在论坛上找到这个问题的答案。

我正在研究项目欧拉问题,确切地说问题54,我需要读取1000行数据,每行包含两个随机生成的扑克牌,前半部分是玩家1的手,第二个是玩家2的。

以下是文档布局的示例:

8CTSKC9H4S 7D2S5D3SAC

5CAD5DAC9C 7C5H8DTDKS

3H7H6SKCJS QHTDJC2D8S

TH8H5CQSTC 9H4DJCKSJS

到目前为止,我所做的是手动制作两个文档,从每行复制第二个“Hand”并将其添加到新文档中。然而,我做了两次并得出了两个不同的结果,所以我想我在所有复制的某个地方犯了一个错误。 以下是我使用的上述功能的示例:

    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功能。我对编程很新,我正在努力教自己,所以如果这是一个过于简单的问题我会道歉。

非常感谢您提前

1 个答案:

答案 0 :(得分: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]);
}