gpt4 book ai didi

Java 字符串拆分,没有按照我预想的方式工作

转载 作者:行者123 更新时间:2023-11-30 08:20:20 25 4
gpt4 key购买 nike

所以我正在尝试为我的几个 friend 制作一个游戏爱好者 java 程序,我正在尝试读取文本文件的内容以在将来存储到数组/数组列表中,但我无法按照我希望的方式进行字符串拆分。我尝试了这个地方的例子,这些例子对人们有用,只是为了看看它是否会起作用,但我得到了相同的输出。

importCards.java

BufferedReader in = null;
try {
in = new BufferedReader(new FileReader("dark.txt"));
String read = null;
while ((read = in.readLine()) != null) {
read = in.readLine();
String[] splited = read.split("||");
for (String part : splited) {
System.out.println(part);
}
}
} catch (IOException e) {
System.out.println("There was a problem: " + e);
e.printStackTrace();
} finally {
try {
in.close();
} catch (Exception e) {
}
}

文本文件格式如下

17||Dark Soul Endor||Dark||2||1||Human||Main Characters||5|500000||833||126||78||23||Release of Spirit - Dark||Dissolve all Light Runestones to inflict Dark on all enemies||Power of Dark||Dark Attack x 150%

然而,当我尝试并打印它时,我得到了这个

1

8

|

|

D

一个

r

k

等等

最佳答案

正则表达式有特殊的标记,例如 |,它的字面意思不是 |,而是在这种情况下表示 OR。即在这种情况下 ""OR ""OR "" 当您匹配空字符串时,它会将每个字符拆分为它自己的字符串。

你的意思是

String[] splited = read.split("\\|\\|");

你可能想知道,为什么两个 \\| 而不是 \| 的原因是 \ 在 Java 中有特殊的含义并且常用表达。当您在 Java 中编写 \\| 时,它变成 "\|" 作为字符串,即两个字符,作为正则表达式是 |从字面上看,而不是特殊的标记。

顺便说一句,我建议您改用\t(制表符)。这不仅会更小,而且您将能够在您最喜欢的电子表格编辑器(例如 Excel 或 LibreCalc)中编辑文件。这样可以更轻松地查看列的位置,甚至可以添加/删除列或更改它们的顺序。

暗黑破坏神 II 使用 , 作为其原始数据文件。 ;)

如果您阅读 CSV 或 TSV 文件,可以使用一些库使其更易于阅读/导入,例如 OpenCSV's CSVReader

关于Java 字符串拆分,没有按照我预想的方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26137784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com