gpt4 book ai didi

java - 如何使用拆分将文件中的值添加到数组中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:55 25 4
gpt4 key购买 nike

我有以下代码:

BufferedReader metaRead = new BufferedReader(new FileReader(metaFile));
String metaLine = "";
String [] metaData = new String [100000];

while ((metaLine = metaRead.readLine()) != null){
metaData = metaLine.split(",");
for (int i = 0; i < metaData.length; i++)
System.out.println(metaData[0]);
}

这是文件中的内容:

testTable2  Name    java.lang.Integer   TRUE    test
testTable2 age java.lang.String FALSE test
testTable2 ID java.lang.Integer FALSE test

我希望数组位于 metaData[0] testTable2metaData[1] 将是 Name,但是当我在 0 运行它时,我得到 testtable2testtable2testtable2,在 1 我会得到 NameageID越界异常

有什么想法可以得到我想要的结果吗?

最佳答案

只需打印 metaData[i] 而不是 metaData[0] 并将每个字符串拆分为 "[ ]+" (这意味着 < em>"1个或多个空格"):

metaData = metaLine.split("[ ]+");

结果,您将获得以下数组:

[testTable2, Name, java.lang.Integer, TRUE, test]
[testTable2, age, java.lang.String, FALSE, test]
[testTable2, ID, java.lang.Integer, FALSE, test]

上述输出结果的代码片段:

while ((metaLine = metaRead.readLine()) != null) {
metaData = metaLine.split("[ ]+");
for (int i = 0; i < metaData.length; i++)
System.out.print(metaData[i] + " ");
System.out.println();
}

此外,我已经使用 Java 8 和 Stream API 编写了您的任务:

List<String> collect = metaRead
.lines()
.flatMap(line -> Arrays.stream(line.split("[ ]+")))
.collect(Collectors.toList());

最后,还有最直接的方法:

final int LINES, WORDS;
String[] metaData = new String[LINES = 5 * (WORDS = 3)]; // I don't like it

int i = 0;
while ((metaLine = metaRead.readLine()) != null) {
for (String s : metaLine.split("[ ]+")) metaData[i++] = s;
}

关于java - 如何使用拆分将文件中的值添加到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730468/

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