好的,所以我遇到了对象范围的问题。我现在正在使用Jsoup,这是代码:
//Website is /001.shtml, so adding count to the string wouldn't work.
//This is why I have the ifs
if (count < 10)
{
Document site = Jsoup.connect(url + "00" + count).get();
}
else if (count < 100)
{
Document site = Jsoup.connect(url + "0" + count + ".shtml").get();
}
else
{
Document site = Jsoup.connect(url + count + ".shtml").get();
}
好的,所以我创建了一个名为的Document对象 网站,我需要添加一定数量的零,因为该人如何制作网站,没有问题。但是,当我尝试使用site.select(任何东西)时,我不能,因为该对象是在if构造中定义的。
另外,我无法在if之外初始化它,它不起作用,因为我得到一个重复的错误抛出。请告诉我有一个解决方法,因为我搜索并搜索无效,我不想将其余的程序3次放入不同的ifs ...
答案 0 :(得分:1)
只需在site
块之外声明if..else
:
Document site;
if (count < 10){
site = Jsoup.connect(url + "00" + count).get();
} else if (count < 100) {
site = Jsoup.connect(url + "0" + count + ".shtml").get();
} else {
site = Jsoup.connect(url + count + ".shtml").get();
}
或者,您可以使用嵌套的三元运算符:
Document site = Jsoup.connect(
count < 10 ? url + "00" + count
: count < 100 ? url + "0" + count + ".shtml"
: url + count + ".shtml"
).get();
如果我的错误是您的代码存在错误且count < 10
案例丢失+ ".shtml"
,那么最佳解决方案是:
Document site = Jsoup.connect(url + String.format("%03d.shtml", count)).get();
答案 1 :(得分:1)
将声明移到if
else if else链接之外,例如
Document site = null;
if (count < 10) {
site = Jsoup.connect(url + "00" + count + ".shtml").get(); // was missing shtml.
} else if (count < 100) {
site = Jsoup.connect(url + "0" + count + ".shtml").get();
} else {
site = Jsoup.connect(url + count + ".shtml").get();
}
或者您可以构建网址然后连接一次,
String urlStr = url + String.format("%03d", count) + ".shtml";
Document site = Jsoup.connect(urlStr).get();