我能够使用Jsoup轮询我在Java中所需的所有数据并将其存储为元素并将其命名为“links”。我想扫描状态,例如加利福尼亚州,内华达州和德克萨斯州,并且每当其中一个列在轮询数据中时,将计数增加一。我知道我想为每个状态创建一个int,在一个带有+ =的while语句中抛出它并创建50个这样的语句来扫描每个状态但是我该怎么做呢?也有办法避免键入该语句50次?
链接的代码是
try {
doc = Jsoup.connect("https://www.cinemark.com/full-theatre-list").get();
String title = doc.title();
System.out.println("title : " + title);
Elements links = doc.select("a[href]");
}
我发布的代码功能完美,让我得到我想要的东西,所以我猜我的问题是如何引用我创建的元素并扫描它们的关键词。
请注意,这只是代码的一部分,因此如果没有为jsoup设置路径,它将无法运行。我的问题不是关于我发布的代码,只是为了对程序有一个总体概念。
答案 0 :(得分:0)
我猜你是编程的新手(在Java中)。做你想做的事情的一种方式是这样的:
1)创建一个类StateCount,如下所示:
private class StateCounter {
public String name = "";
public int count = 0;
public StateCounter(String name) {
super();
this.name = name;
this.count = 0;
}
}
2)在你的代码中
//create StateCounter instances in a list
List<StateCounter> statecounters = new ArrayList<StateCounter>();
statecounters.add(new StateCounter("Texas"));
statecounters.add(new StateCounter("Nevada"));
...
//when you have the links
for (Element link: links){
for (StateCounter sc : statecounters){
if (link.getElementsByAttributeValueContaining("href", sc.name)){
sc.count++;
}
}
}
//do whatever you need to do.
当然,您也可以使用HashMap数据结构来存储计数。这取决于你真正想要做些什么。