修剪列表元素中的字符

时间:2014-02-02 13:57:13

标签: java arrays list trim

我有以下代码:

    public class HtmlParser {

private Document doc;
private List<String>dataList;

public HtmlParser(Properties configuration) throws IOException {

    String url = configuration.getProperty("url");
    Document doc = Jsoup.connect(url).get();

    this.dataList = new ArrayList<String>();
    Elements tableRows = doc.getElementsByTag("tr");

    for (Element tr : tableRows){
        dataList.add(tr.text()+"\n");
    }

    System.out.println(this.dataList);

打印出以下内容:

[Flights on time 93%
, Within 1 hour 99%
, FLIGHT FROM TO DEPART ARRIVE STATUS
, FR 2111 Manchester Paphos 06:25 13:20 Landed 13:40
, FR 8582 London Stansted Thessaloniki 06:30 11:45 Landed
, FR 6093 Gran Canaria Milan Bergamo 06:35 12:05 Landed Early 11:47
, FR 4002 Lanzarote Milan Bergamo 07:15 12:25 Landed
, FR 2482 Leeds Bradford Riga 07:20 11:55 Landed
, FR 5212 Marrakesh Paris Beauvais 07:20 11:50 Landed Early 11:40
, FR 1041 Gran Canaria Stockholm Skavsta 07:45 14:30 On Time
, FR 6342 Rome Fiumicino Barcelona El Prat 08:15 10:00 Estimated Arrival 14:35
, OPERATING FROM FIUMICINO DUE TO WEATHER DIVERSION - PASSENGERS TO BE COACHED TO FIUMICINO AIRPORT
, FR 4172 Porto Frankfurt Hahn 08:15 11:45 Landed
, FR 4883 Rome Fiumicino Cagliari 08:20 09:30 Landed 12:50
, FR 7062 Dublin Alicante 08:30 12:25 Landed Early 12:05
, FR 1015 Tenerife Sth Stockholm Skavsta 08:30 15:15 On Time
, FR 7158 Dublin Madrid 08:45 12:35 Landed Early 12:15
, FR 8405 London Stansted Wroclaw 08:50 11:50 Landed
, FR 2065 Porto Dortmund 08:55 12:30 Landed
, FR 1031 Tenerife Sth Oslo Rygge 09:00 15:30 On Time
, FR 9283 Faro London Stansted 09:05 11:55 Landed Early 11:46
, FR 3071 London Stansted Comiso 09:05 13:15 Landed Early 13:10
, FR 3006 London Stansted Rome Ciampino 09:10 12:35 Landed
]

首先,我想从行的开头删除和空格,并让文本以FR开头。我试过了dataList.remove(0),但它不起作用。奇怪的是,在控制台显示中,所有行都在每个“,”之前用新行分隔,但它没有显示在这里。

我正在寻找像Stanstead这样的关键字选择一个特定的行,并在其中间添加文本,如“到达时间:”等,但我在这里遇到了麻烦。

当我走到这里时,我对Java有了新的认识和学习。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

提示可以帮助您学习:

  

首先,我想从行的开头删除和空格,并让文本以FR开头。

了解Stringtrimsubstring方法。事实上,我建议您阅读整个页面...以及ListCollection的页面......

请记住,所有String对象都是不可变的,所以trim等所有工作都是通过创建 new 字符串来实现的。因此,要使更新“粘贴”,您需要使用更新的值替换每个列表元素。

(另见下文!)

  

我已经尝试了dataList.remove(0),但它不起作用。

该方法从列表中删除条目。

  

奇怪的是,在控制台显示中,所有行都在每个“,”之前用新行分隔,但它没有显示在这里。

实际上是/他们是。这些是在输出中每个逗号之前导致换行的原因......以及逗号本身!当你这样称呼时:

    System.out.println(this.dataList);

列表由列表对象的toString()方法格式化。这就是添加方括号和神秘", "的东西。

在开始编写代码以编辑字符串中的那些神秘字符之前,请检查它们是否真的 ...而不仅仅是打印列表的方式的人工制品。

  

我正在寻找像Stanstead这样的关键字选择一个特定的行,并在其中间添加文本,如“到达时间:”等,但我在这里遇到了麻烦。

遍历列表,并在每个String上调用contains。 javadoc位于上面链接的地方......