【问题标题】:groovy split string by pipe and return substring indexgroovy 按管道拆分字符串并返回子字符串索引
【发布时间】:2018-04-26 14:25:49
【问题描述】:

我正在尝试拆分以竖线分隔的文本数据文件的标题行,并返回两个字段的索引,这两个字段可能位于任何位置,因为我们的数据结构因广告系列而异。我的代码示例是:

ArrayList list = new ArrayList()
def headingslist = "URN|BATCHID|CUST_URN|CUSTOMER_NAME|POSTCODE|PERSONKEY|MOBILENUMBER||PREMIUM|STATUS"
headingslist.split("\\|")

list.add(headingslist)

int indexMobNo = list.indexOf("MOBILENUMBER")
int indexURN = list.indexOf("PERSONKEY")

但是,当我运行此代码或其变体时,我得到的索引返回为 -1,因为它在我的字符串中找不到任何子字符串。

【问题讨论】:

    标签: groovy


    【解决方案1】:

    调用split 不会修改headingslist 的值,而是返回一个List。因此,您可以直接将结果分配给list,也可以使用list.addAll 将结果的所有元素添加到列表中。请注意,add 会将List 本身作为新元素添加到列表中。所以你最终会得到一个包含一个 List 元素的 List。

    def headingslist = "URN|BATCHID|CUST_URN|CUSTOMER_NAME|POSTCODE|PERSONKEY|MOBILENUMBER||PREMIUM|STATUS"
    ArrayList list = headingslist.split("\\|")
    
    int indexMobNo = list.indexOf("MOBILENUMBER")
    int indexURN = list.indexOf("PERSONKEY")
    

    【讨论】:

    • 谢谢你的帮助,太完美了
    • 不客气!不要忘记将问题标记为已回答,以便其他人知道他们不需要调查。
    猜你喜欢
    • 2019-06-13
    • 1970-01-01
    • 2014-03-17
    • 2023-04-04
    • 2012-06-06
    • 1970-01-01
    • 2015-12-18
    • 2021-05-31
    相关资源
    最近更新 更多