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

标签 java arrays string file split

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

我正在研究一个欧拉问题,确切地说是问题 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 函数。我对编程相当陌生,我正在尝试自学,所以如果这是一个过于简单的问题,我深表歉意。

提前非常感谢

最佳答案

您可以按空格分割(全部空白)

例如:

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]);
}

关于java - 将文本文件中的一行拆分为两个单独的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26161447/

相关文章:

java - 在我的 java 应用程序中与 paypal 服务器通信时出现 ssl 握手错误

java - MongoDriver UUID 支持

java - 如何预先声明一个数组?

ios - 获取不超过两个字母的日历工作日符号

java - Android json listview 与数组不工作

java - 为什么这段代码会出现运行时错误?

java - 如何为数组编写 get 和 set 方法

java - 确定列表是否至少包含数组中包含的一项的快速方法

c - strcmp() 和 strcat() 序列

c - 我的代码 : reversing words in a string? 的时间复杂度是多少 我应该考虑不对称间距吗?