gpt4 book ai didi

Java从ArrayList中获取子内容

转载 作者:行者123 更新时间:2023-12-02 10:52:32 24 4
gpt4 key购买 nike

这非常复杂。我正在构建一个 GUI,它将获取一个文本文件,当我按下“开始”按钮时,它将启动“BufferReader”函数,将文件中的所有行读取到名为“list”的 ArrayList 中。之后,我需要捕获以字母“CE-”开头的数组“列表”中的所有字符串,然后使用数组“列表”的下一个索引,直到代码再次获取以“CE-”开头的字符串字母。 “CE-”之间的所有字符串都需要添加到名为“CE”的新 ArrayList 中。

  • 所有以“CE-”字母开头的字符串都是标题。
  • 索引之间包含“CE-”的所有字符串都是我的参数。
  • 该文件包含其他标题,而​​不仅仅是“CE-”

这是文本文件的一小部分:

CE-system-components-accessmanager:
Access control enable ,disabled
Access policy prototyping ,enabled
Access user group ,enabled
Implicit roles access policy ,disabled
World access policy ,disabled

CE-system-components-eqlog:
EquipmentLog Enable ,false

CE-system-components-eventlog:
Eventlog Enable ,false

这是需要获取“CE-”之间索引中的字符串的代码部分:

            for(String s : list) {
if(s.contains("CE-")){
int idx = (list.indexOf(s))+1;
String txt = list.get(idx);
System.out.println(txt);
CE.add(txt);
}
}
System.out.println(CE);

这段代码的输出只有第一个参数。

 Access control enable                             ,disabled
EquipmentLog Enable ,false
Eventlog Enable ,false

我的问题是如何获取所有参数?我已经尝试了一些代码,但它不起作用。

最佳答案

此代码使用 boolean 值inCE来跟踪该行是否在CE block 中。当看到“CE-”行时设置为 true,当看到空行时设置为 false。

boolean inCE = false;

for (String line : lines) {
if (line.contains("CE-")) {
inCE = true;
}
else if (line.trim().isEmpty()) {
inCE = false;
}
else if (inCE) {
System.out.println(line);
CE.add(line);
}
}

关于Java从ArrayList中获取子内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52056573/

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