将文本文件分割成两个单独的数组
问题描述:
如果已经回答了这个问题,我必须提前道歉,但到目前为止,我还没有能够在论坛上找到这个问题的答案。将文本文件分割成两个单独的数组
我正在研究项目欧拉问题,问题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]);
}
+0
非常感谢你的帮助,这就像一个魅力:)。如果我的声望允许,我会赞成:)。 – Richard 2014-10-02 16:55:17
看看这个http://*.com/questions/3481828/how-to-split-a-string-in-java – 2014-10-02 13:06:38
谢谢Abdul,我不能相信我错过了那个:/ – Richard 2014-10-02 17:25:19
那就好了,我通过google找到了它) – 2014-10-02 17:46:28