类,以字符串形式从“ meneame”网页中获取特定内容
public class DownloadWeb {
private String web;
public DownloadWeb(){
try{
InputStream is = null;
BufferedReader br;
String line;
URL url = new URL ("https://www.meneame.net/");
is = url.openStream();
br = new BufferedReader(new InputStreamReader(is));
StringBuilder output2 = new StringBuilder();
while((line = br.readLine()) != null){
output2.append(line);
}
Pattern p = Pattern.compile("<div class=\"center-content\"> *<h2> <a.{10,200} >(.{50,200})</a>");
Matcher m = p.matcher(output2);
Pattern p2 = Pattern.compile("<div class=\"news-content\">(.{100,500})</div> *</div>");
Matcher m2 = p2.matcher(output2);
StringBuilder sb = new StringBuilder();
while(m.find() && m2.find()){
sb.append(m.group(1).replaceAll(""", "") + "\n");
sb.append(m2.group(1).replaceAll(""", "")+ "\n");
}
web = sb.toString();
}catch(Exception e){};
}
public String getWeb(){return web;}
}
我对其进行测试:
System.out.println("getWeb");
DownloadWeb instance = new DownloadWeb();
System.out.println(instance.getWeb());
一切正常,我将其打印出来并正确显示。 但是,当我调试文件并检查存储的内容时,某些字符与最后一个输出不同。这是screenshot,用于说明我在说什么。
我的问题是我不能那样使用。
在另一堂课中,我将以大写字母开头的单词归为HashMap <String, Integer>
(整数是该单词出现的频率)。
之所以这样做,是因为我必须实现一个接收单词的方法,并假设返回该单词的频率。 当我尝试使用带有类似``sâ€''这样的字符的单词时,它显然不起作用,因此我非常渴望这里的解决方案...就像真正的绝望ngl。
是否有一种方法可以使带有重音符号的单词不包含它们,从而不会发生这种情况?就像使所有东西都变成“普通”字母一样,而没有诸如“ñ”或“ü”之类的东西。
编辑:此post解决了我的问题。特别感谢@ xerx593的链接。