【问题标题】:Trim characters from list elements从列表元素中修剪字符
【发布时间】:2014-02-02 13:57:12
【问题描述】:

我有以下代码:

    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 相当陌生,并且在这里学习。任何帮助将不胜感激。

【问题讨论】:

    标签: java arrays list trim


    【解决方案1】:

    帮助您学习的提示:

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

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

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

    (见下文!)

    我试过dataList.remove(0),但它不起作用。

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

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

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

        System.out.println(this.dataList);
    

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

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

    我希望通过关键字(如 Stanstead)选择特定行,并在其中添加文本,如“到达时间:”等,但我在这里遇到了麻烦。

    遍历列表,并在每个字符串上调用contains。 javadoc在上面链接的地方...

    【讨论】:

      猜你喜欢
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多