2013-02-12 189 views
1

我有一个程序可以使用Jsoup获取特定团队中的曲棍球运动员的统计数据并将其放入单个字符串中。我想分开阵容,这样我就可以得到每个球员在他们自己的字符串中的统计数据。这是我的代码,并解释说:将一个字符串分成多行

public static void main(String[] args) throws IOException { 


    Document doc = Jsoup.connect("http://espn.go.com/nhl/team/stats/_/name/phi/philadelphia-flyers").get(); 

    for (Element table : doc.select("table.tablehead")) { 
     for (Element row : table.select("tr")) { 
      Elements tds = row.select("td"); 
      if (tds.size() > 6) { 
       String a = tds.get(0).text() + ":" + tds.get(1).text() + " GOALS: " + tds.get(2).text() + " ASSISTS: " + tds.get(3).text() + " POINTS: " + tds.get(4).text() + " PLUS/MINUS: " + tds.get(5).text() + " PIM: " + tds.get(6).text(); 
       System.out.println(a); 
      } 
     } 
    } 
} 

输出给多行,给你一个想法,这是第一次三行它给:

PLAYER:GP GOALS: G ASSISTS: A POINTS: PTS PLUS/MINUS: +/- PIM: PIM 
Matt Read, C:13 GOALS: 5 ASSISTS: 4 POINTS: 9 PLUS/MINUS: 2 PIM: 2 
Brayden Schenn, C:12 GOALS: 2 ASSISTS: 6 POINTS: 8 PLUS/MINUS: 3 PIM: 5 

如果行的开头=马特·里德我想打一个包含字符串:

Matt Read, C:13 GOALS: 5 ASSISTS: 4 POINTS: 9 PLUS/MINUS: 2 PIM: 2 

如果行=布雷登·施恩的开始,我想打一个包含字符串:

Brayden Schenn, C:12 GOALS: 2 ASSISTS: 6 POINTS: 8 PLUS/MINUS: 3 PIM: 5 

回答

3

除非我不理解代码,否则您似乎已经做了很多工作 - 每个循环迭代中的每行都在String a变量中。你只需要向外保存每个作业a。在初始循环之前实例化一个ArrayList<String>,并在您致电System.out.println(a);之前向其添加变量a。退出for循环后,您的ArrayList应包含每个适当的个人String

public static void main(String[] args) throws IOException { 

    List<String> list = new ArrayList<String>(); // THIS LINE IS NEW 

    Document doc = Jsoup.connect("http://espn.go.com/nhl/team/stats/_/name/phi/philadelphia-flyers").get(); 

    for (Element table : doc.select("table.tablehead")) { 
     for (Element row : table.select("tr")) { 
      Elements tds = row.select("td"); 
      if (tds.size() > 6) { 
       String a = tds.get(0).text() + ":" + tds.get(1).text() + " GOALS: " + tds.get(2).text() + " ASSISTS: " + tds.get(3).text() + " POINTS: " + tds.get(4).text() + " PLUS/MINUS: " + tds.get(5).text() + " PIM: " + tds.get(6).text(); 

        list.add(a); // THIS LINE IS NEW 

       System.out.println(a); 
      } 
     } 
    } 

     // at this point, variable "list" contains each String assigned to "a" above. 

} 
+0

谢谢!我不知道为什么我不能想到这一点。 – MaxK 2013-02-12 22:46:32

1

您可以使用扫描仪类通过调用scanner.nextLine()方法来取出每个线条勾勒出的文字(或直接从文件)的任何机构。它只会扫描输入字符串,直到它遇到一个新的行字符,并返回所有内容。

1

您可以使用扫描仪,或更优选列表,甚至一个HashMap至播放器的信息存储在。

而不是打印的路线,声明你的首选类型和存储字符串在那里。