如果这个问题得到解答,我必须提前道歉,到目前为止我还没有在论坛上找到这个问题的答案。
我正在研究一个欧拉问题,确切地说是问题 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/