由于我是初学者,我对以下问题一无所知,但我做了几个小时的研究,但没有什么可以帮助我。
我已经声明了一个静态字符串,它将在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循环和/或修饰符有关,但我无法弄明白。请帮帮我。
答案 0 :(得分:0)
您应该使用StringBuilder
来累积线条。
public class Dothework {
StringBuilder info = new StringBuilder();
// for...
info.append(tempinfo).append("\n");
目前,循环的每次迭代都会覆盖存储在字符串中的先前值。您也不需要静态变量。