Java字符串数组无法正确打印

时间:2016-04-14 04:37:53

标签: java arrays

我目前正在开发一个抓取网页并从中打印出一些信息的Java程序。

有一部分是我无法弄清楚的,当我尝试打印出一个特定的字符串数组中有一些信息时,它给我的所有内容都是“]”。但是,之前的几行,我也尝试以完全相同的方式打印出另一个String数组,并打印出来。当我测试实际传递给“categories”变量的内容时,它的正确信息可以在那里打印出来。

public class Crawler {

private Document htmlDocument;
String [] keywords, categories;

public void printData(String urlToCrawl)
{
    nextURL=urlToCrawl;
    crawl();

    //This does what its supposed to do. (Print Statement 1)
    System.out.print("Keywords: ");
    for (String i :keywords) {System.out.print(i+", ");}

    //This doesnt. (Print Statement 2)
    System.out.print("Categories: ");
    for (String b :categories) {System.out.print(b+", ");}


}

public void crawl()
{
    //Gather Data

        //open up JSOUP for HTTP parsing.
        Connection connection = Jsoup.connect(nextURL).userAgent(USER_AGENT);
        Document htmlDocument = connection.get();
        this.htmlDocument=htmlDocument;

        System.out.println("Recieved Webpage "+ nextURL);


        int guacCounter = 0;
        for(Element guac : htmlDocument.select("script"))
        {
            if(guacCounter==5)
            {
                //String concentratedGuac = guac.toString();
                String[] items = guac.toString().split("\\n");
                categories = processGuac(items);
                break;
            }
            else if(guacCounter<5) {
                guacCounter++;
            }
        }
}
public String[] processKeywords(String totalKeywords)
{
    String [] separatedKeywords = totalKeywords.split(",");
    //System.out.println(separatedKeywords.toString());
    return separatedKeywords;
}

public String[] processGuac(String[] inputGuac)
{
    int categoryIsOnLine = 6;

    String categoryData = inputGuac[categoryIsOnLine-1];

    categoryData = categoryData.replace(",","");
    categoryData = categoryData.replace("'","");
    categoryData = categoryData.replace("|",",");
    categoryData = categoryData.split(":")[1];

    //this prints out the list of categories in string form.(Print Statement 3)
    System.out.println("Testing here: " + categoryData.toString());

    String [] categoryList=categoryData.split(",");

    //This prints out the list of categories in array form correctly.(Print statement 4)
    System.out.println("Testing here too: " );
    for(String a : categoryList) {System.out.println(a);}

    return categoryList;
}

}

我删除了很多代码中不相关的部分,因此可能会有一些缺失的变量。 这是我的打印输出的样子:

PS1:

Keywords: What makes a good friend,  making friends,  signs of a good friend,  supporting friends,  conflict management, 

PS2:

]

PS3:

Testing here:  wellbeing,friends-and-family,friendships

PS4:

Testing here too: 
 wellbeing
friends-and-family
friendships

0 个答案:

没有答案