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

groovy按管道拆分字符串并返回子字符串索引,groovy,Groovy,我正在尝试拆分以管道分隔的文本数据文件的标题行,并返回两个字段的索引,这两个字段可能位于任何位置,因为我们的数据结构因活动而异。我的代码示例如下: ArrayList list = new ArrayList() def headingslist = "URN|BATCHID|CUST_URN|CUSTOMER_NAME|POSTCODE|PERSONKEY|MOBILENUMBER||PREMIUM|STATUS" headingslist.split("\\|") list.add(hea

我正在尝试拆分以管道分隔的文本数据文件的标题行,并返回两个字段的索引,这两个字段可能位于任何位置,因为我们的数据结构因活动而异。我的代码示例如下:

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

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

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")

谢谢你的帮助,太好了,不客气!别忘了将问题标记为已回答,这样其他人就知道他们不需要调查。