gpt4 book ai didi

java - 从文本文件中读取并查找字符串

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

我正在使用以下代码将文本文件内容加载到 GUI:

try {
BufferedReader br = new BufferedReader(new FileReader ("text.txt"));
String line;
while ((line = br.readLine()) != null) {
if (line.contains("TITLE")) {
jTextField2.setText(line.substring(11, 59));
}
}
in.close();
} catch (Exception e) {
}

然后text.txt文件的内容:

JOURNAL   journal name                                               A12340001
TITLE Sound, mobility and landscapes of exhibition: radio-guided A12340002
tours at the Science Museum A12340003
AUTHOR authors name A12340004

jTextField2 上,我收到以下内容:“展览的声音、移动性和景观: radio 引导”。问题是我不知道如何获取下一行“jTextField2”的字符串“科学博物馆之旅”。

我想问一下如何获得jTextField2上的两条线,即“展览的声音、移动性和景观:科学博物馆的 radio 导览”

预先感谢您的帮助。

最佳答案

如果您使用 Java 8 并假设列具有固定数量的字符,则可以这样做:

public static void main(String args[]) throws IOException {
Map<String, String> sections = new HashMap<>();
List<String> content = (List<String>)Files.lines(Paths.get("files/input.txt")).collect(Collectors.toList());
String lastKey = "";
for(String s : content){
String k = s.substring(0, 10).trim();
String v = s.substring(10, s.length()-9).trim();
if(k.equals(""))
k=lastKey;
sections.merge(k, v, String::concat);
lastKey=k;
}
System.out.println(sections.get("TITLE"));
}

第一列是关键。当键不存在时,使用最后一个键。 Map 用于存储键和值。当键已经存在时,该值会通过串联与现有的值合并。

此代码输出预期的字符串:展览的声音、移动性和景观:科学博物馆的 radio 导游

编辑:对于 Java 7

public static void main(String args[]) {
Map<String, String> sections = new HashMap<>();
String s = "", lastKey="";
try (BufferedReader br = new BufferedReader(new FileReader("files/input.txt"))) {
while ((s = br.readLine()) != null) {
String k = s.substring(0, 10).trim();
String v = s.substring(10, s.length() - 9).trim();
if (k.equals(""))
k = lastKey;
if(sections.containsKey(k))
v = sections.get(k) + v;
sections.put(k,v);
lastKey = k;
}
} catch (IOException e) {
System.err.println("The file could not be found or read");
}

System.out.println(sections.get("TITLE"));
}

关于java - 从文本文件中读取并查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37129625/

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