gpt4 book ai didi

java - 我需要将正则表达式的所有匹配项包含到一个文本文件中;我是java编程新手

转载 作者:行者123 更新时间:2023-11-30 04:28:35 29 4
gpt4 key购买 nike

我正在尝试将找到的所有匹配项包含到文本文档中,过去 3 小时我一直在办公 table 上敲头,认为是时候寻求帮助了。

我当前的问题是 List<String>我不确定是否因为输入的信息错误或者是否是我的文件打印方法。它不会打印到文件以及使用其他打印方式,例如 writer.println(returnvalue)即便如此,它仍然只显示其中一个匹配项,而不是全部,我确实在控制台中显示了匹配项,只是为了确保它们正在显示并且确实如此。

Edit2:抱歉,这是我在 stackoverflow 上的第一个问题,我想我的问题是如何将列表数组中的所有数据打印到文本文件?

Edit3:我最新的问题是打印出所有匹配项,我目前无法打印最后一个匹配项,有什么建议吗?

public static void RegexChecker(String TheRegex, String line){
String Result= "";
List<String> returnvalue = new ArrayList<String>();
Pattern checkRegex = Pattern.compile(TheRegex);
Matcher regexMatcher = checkRegex.matcher(line);
int count = 0 ;

FileWriter writer = null;
try {
writer = new FileWriter("output.txt");
} catch (IOException e1) {
e1.printStackTrace();
}

while ( regexMatcher.find() ){
if (regexMatcher.group().length() != 0){
returnvalue.add(regexMatcher.group());
System.out.println( regexMatcher.group().trim() );
}

for(String str: returnvalue) {
try {
out.write(String.valueOf(returnvalue.get(i)));
writer.write(str);
} catch (IOException e) {
e.printStackTrace();
}
}

}
}

最佳答案

while中获取for。您只想在所有匹配项都添加到列表后才写入文件。 for-each block 也需要一些修改。

for-each 构造为您提供集合迭代中的值。您无需使用索引再次获取值。

试试这个:

while (regexMatcher.find()) {
if (regexMatcher.group().length() != 0) {
returnvalue.add(regexMatcher.group());
System.out.println(regexMatcher.group().trim());
}
}
try {
for (String str : returnvalue) {
writer.write(str + "\n");
}
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}

关于java - 我需要将正则表达式的所有匹配项包含到一个文本文件中;我是java编程新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15192349/

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