gpt4 book ai didi

java - 将 arraylist 拆分为单独的数组,其中包含导入数据中的各个元素

转载 作者:行者123 更新时间:2023-12-02 08:49:03 25 4
gpt4 key购买 nike

例如,正在将其输入到程序中:

(一)

(!a;c)

(b;!c)

例如,我需要单独使用 !a 而不附加 ;c 。

我的想法是将所有内容存储在一个数组列表中,然后将每组括号分成具有单独元素的不同数组。即它会变成 [[a], [!a, c], [b, !c]]。

上面说的是我的想法。这是我写的代码,效果不好。我希望我想说的内容能够被理解,并且非常感谢您的帮助

Scanner scanClauses = new Scanner(new File(args[0]));

System.out.println("\nSuccessfully read file!\n");

ArrayList<ArrayList<String>> clauses = new ArrayList<>();
ArrayList<String> query = new ArrayList<>();

Scanner scan = new Scanner(System.in);
scan.useDelimiter("\n");

//To take KB and put it in an array
while (scanClauses.hasNextLine()) {
clauses.add(new ArrayList<>());
for (ArrayList<String> c : clauses) {
c.add(scanClauses.next());
System.out.println(c);
}
}

最佳答案

问题是您在以下代码行的 clauses 中添加了一个空的 ArrayList:

clauses.add(new ArrayList<>());

按如下方式进行:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {
public static void main(String[] args) throws FileNotFoundException {
Scanner scan = new Scanner(new File("file.txt"));
List<ArrayList<String>> clauses = new ArrayList<ArrayList<String>>();
ArrayList<String> query;
while (scan.hasNextLine()) {
// Remove '(' and ')' from the line and then split it on ';' to get an array
// of tokens. Then, convert the array to a new `ArrayList`.
query = new ArrayList<String>(Arrays.asList(scan.nextLine().replace("(", "").replace(")", "").split(";")));
clauses.add(query);
}
System.out.println(clauses);
}
}

输出:

[[a], [!a, c], [b, !c]]

file.txt 的内容:

(a)
(!a;c)
(b;!c)

关于java - 将 arraylist 拆分为单独的数组,其中包含导入数据中的各个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60903568/

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