【发布时间】:2018-01-13 01:03:31
【问题描述】:
由于我是初学者,我对以下问题一无所知,因此我进行了数小时的研究,但没有任何帮助。
我已经声明了一个静态字符串,它将在 for 循环中分配,稍后字符串 get 会在控制台中打印出来,但它不包含完整的上下文。
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class dothework {
static String info;
public void scrapeinfo() throws IOException {
Document doc = Jsoup.connect("html").get();
Elements el_name = doc.select(".champ-name");
Elements el_speed = doc.select(".speed");
Elements el_altitude = doc.select(".altitude");
el_name.size();
el_speed.size();
el_altitude.size();
for(int i = 0; i < 5; i++) {
String name = el_name.get(i).text();
String speed = el_speed.get(i).text();
String altitude = el_altitude.get(i).text();
String tempinfo = (name+": "+speed+" ("+altitude+")");
System.out.println(tempinfo);
info = tempinfo;
}
}
public void printinfo() {
System.out.println(info);
}
}
System.out.println(tempinfo); 打印出 5 行的完整信息,每行包含名称、速度和高度,而另一行 System.out.println(info); 仅打印出一行包含名称、速度和高度。所以问题是字符串不同,即使我在这里均衡它们:info = tempinfo;。我想这与 for 循环和/或修饰符有关,但我无法弄清楚。请帮帮我。
【问题讨论】:
-
你问的是
info = tempinfo;和info += tempinfo;的区别吗? -
您缺少一个主要方法来说明这是minimal reproducible example,但请删除字符串上的静态
-
我认为 OP 只想将所有 5 行在循环中打印到字符串
info并让它打印在 5 行中......就像添加每个tempinfo后跟换行到info...info += tempinfo + "\n" -
是的,每次他设置 info 以引用新的 tempinfo 字符串时,他都会丢弃以前的信息。他想做
info += tempinfo + "\n";或类似的事情。不是一个很清楚的问题。 -
@HovercraftFullOfEels 我在问为什么这两个字符串的输出不同? info 的输出怎么可能真的等于 tempinfo 的输出呢?对不起,我没有真正问这个...
标签: java string for-loop jsoup