我试图拆分管道分隔文本数据文件的标题行,并返回可能位于任意位置的两个字段的索引,因为我们的数据结构因广告系列而异。我的代码的一个例子是:
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,因为它无法在我的字符串中找到子字符串。
答案 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")