for循环中的字符串不能获得完整的上下文

时间:2018-01-13 01:03:31

标签: java string for-loop jsoup

由于我是初学者,我对以下问题一无所知,但我做了几个小时的研究,但没有什么可以帮助我。
我已经声明了一个静态字符串,它将在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循环和/或修饰符有关,但我无法弄明白。请帮帮我。

1 个答案:

答案 0 :(得分:0)

您应该使用StringBuilder来累积线条。

public class Dothework {

    StringBuilder info = new StringBuilder();

    // for... 

        info.append(tempinfo).append("\n");

目前,循环的每次迭代都会覆盖存储在字符串中的先前值。您也不需要静态变量。