0

これが初心者の質問である場合は申し訳ありません。私は実際にこのプロジェクトを使用して、Java について独学しています。私のプログラムは基本的に、株式のさまざまなメトリックを収集して出力する Web スクレイパーです。他の多くのクラスで変数を呼び出せるようにする必要があることに気付くまで、プログラムは正常に機能していました。これを実現するためにコードを書き直そうとした後、値がコンソールに無限に出力されることに気付きました。最初は、これは if else 構文のせいだと思っていましたが、そうではないようでした。誰かが値を一度だけ出力し、他のクラスで使用できるようにする方法を理解するのを手伝ってもらえますか?

これが私のコードです:

package datacollection;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import java.io.IOException;

public class Tester
{

public static String fetchMarketCap()
{
    final String keyMetricsURL = "https://markets.businessinsider.com/stocks/ko-stock";

    // obtains the market cap value

    try {
        Document marketCapDocument = Jsoup.connect(keyMetricsURL).get();


        for (Element row : marketCapDocument.select("div.snapshot")) {
            if (row.select("div.snapshot__data-item:nth-of-type(3)").text().equals("")) {
                continue;
            }
            else
                {

                final String marketCapValue = row.select("div.snapshot__data-item:nth-of- 
type(3)").text();
                    System.out.println(marketCapValue.substring(0, 8));

            }
        }
    } catch (Exception marketCapDocumentException) {
        marketCapDocumentException.printStackTrace();

    }

    return fetchMarketCap();
}


public static void main(String[] args) throws IOException
{
    //call your functions here. this is what the program scans for first and sees which classes and methods to call.
    System.out.println(fetchMarketCap());

}
4

1 に答える 1