groovy按管道拆分字符串并返回子字符串索引

时间:2018-04-26 14:25:49

标签: groovy

我试图拆分管道分隔文本数据文件的标题行,并返回可能位于任意位置的两个字段的索引,因为我们的数据结构因广告系列而异。我的代码的一个例子是:

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,因为它无法在我的字符串中找到子字符串。

1 个答案:

答案 0 :(得分:2)

调用split不会修改headingslist的值,但会返回一个列表。因此,您可以直接将结果分配给list,也可以使用list.addAll将结果的所有元素添加到列表中。请注意,add会将List本身作为新元素添加到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")