gpt4 book ai didi

java - 为什么这个java程序不能运行?

转载 作者:行者123 更新时间:2023-12-01 15:23:16 25 4
gpt4 key购买 nike

我想要This imageurl.txt文件,来自 this source.txt ,与程序。如果我只尝试使用“p”或“p2”,那么就可以了。但这两种模式,都写不出来。

import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.io.*;

public class imageurl
{
public static void main(String[] args)
throws IOException
{
for ( int i = 1; i < 5000; i++ )
{
toContent(i);
Pattern p = Pattern.compile("cacheimages/(.*)[\"][ ]*target=");
Pattern p2 = Pattern.compile("</b>[ ]*[(](.*)[)]</div>");
BufferedReader r = new BufferedReader(new FileReader("source\\source"+i+".txt"));
String line;
FileWriter writer = new FileWriter("imageurl\\imageurl"+i+".txt");
while ((line = r.readLine()) != null )
{
Matcher m = p.matcher(line);
Matcher m2 = p2.matcher(line);
while (m.find())
while (m2.find())
{
String c = (m.group(1));
String c2 = (m2.group(1));
System.out.println("<name>"+c2+"</name>_<url>http://www.geocaching.hu/cacheimages/"+c+"</url>"+"\n");
writer.write("<name>"+c2+"</name>_<url>http://www.geocaching.hu/cacheimages/"+c+"</url>"+"\n");
}
}
writer.close();
}
}
private static void toContent(int i)
{
}
}

最佳答案

问题是您匹配的两个表达式不同时存在于同一行中。您需要一次阅读两行才能获得您想要的结果。

. . .
String line2;
while ((line = r.readLine()) != null )
Matcher m=p.matcher(line);
if (m.find()) {
if (line2 = r.readLine() != null) {
Matcher m2=p2.matcher(line);
if (m2.find()) {
String c=m.group(1);
String c2=m2.group(1);
String outmsg=String.format("<name>%s</name>_<url>http://www.geocaching.hu/cacheimages/%s</url>\n", c2, c);
System.out.print(outmsg);
writer.write(outmsg);
}
}
writer.close();
}
}

关于java - 为什么这个java程序不能运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10551816/

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