gpt4 book ai didi

java - 在 Java 中使用 Scanner 时在 token 中包含定界符

转载 作者:行者123 更新时间:2023-11-30 09:15:51 28 4
gpt4 key购买 nike

我想使用 Java Scanner 对象将文件行“ block ”读取到对象中。分隔符需要包含在 token 中。我尝试使用 regex lookbehind,但定界符是可变长度的。有没有人对获取分隔符有建议或替代方案?

我目前拥有的 Java 代码(错误地删除了“Processed Value”行):

ArrayList<ProcessedData> stack = new ArrayList<ProcessedData>();    

Scanner scanner = new Scanner(new File("/home/user/data.txt"));
Pattern pattern = Pattern.compile("Processed Value.+?\\n+", Pattern.UNIX_LINES);
scanner.useDelimiter(pattern);

while(scanner.hasNext()) {
stack.add(new ProcessedData(scanner.next()));
}

示例文件:

Id: 1
Raw Value: 1234
Processed Value{423}: A3s2344

Id: 36
Raw Value: 389001
Processed Value{2}: "Access Success"

Id: 28934
Raw Value: 2402
Processed Value: 1345.2 seconds

最佳答案

似乎您需要的信息之间有一个空行,因此可以尝试在该空行上拆分您的数据。您可以尝试使用此分隔符

Pattern pattern = Pattern.compile("(\r?\n){2,}");
scanner.useDelimiter(pattern);

DEMO

关于java - 在 Java 中使用 Scanner 时在 token 中包含定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19692112/

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