【问题标题】:Splitting a line from a textfile into two separate Arrays将文本文件中的一行拆分为两个单独的数组
【发布时间】:2014-10-02 13:01:56
【问题描述】:

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

我正在研究一个 Project Euler 问题,确切地说是问题 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,然后只将第二只手读入另一个。无需创建两个单独的文档并冒着损害数据的风险。如果可以的话,我不确定如何在此处使用拆分功能。我对编程很陌生,我正在尝试自学,所以如果这是一个过于简单的问题,我深表歉意。

非常感谢您

【问题讨论】:

标签: java arrays string file split


【解决方案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]);
}

【讨论】:

  • 非常感谢您的帮助,这就像一个魅力:)。如果我的声誉允许,我会投票赞成:)。
猜你喜欢
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
  • 2016-02-07
  • 2022-09-27
  • 2017-09-09
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多