我有一个字符串,其值类似于“ inactiveCatalog%2CwrongTransaction”,我想将其放入列表中,以“%2C”开头。...
String rseFiltersToRemove = "inactiveCatalog%2CwrongTransaction"
ArrayList rseFiltersToRemoveList = rseFiltersToRemove.tokenize("%2C")
我希望列表包含2个元素(“ inactiveCatalog”和“ wrongTransaction”),但事实证明它包含3个元素(“ inactive”,“ atalogItems”和“ wrongTransaction”)。
因此,它认为“ inactiveCatalog”中的“ C”是分隔符。
当我将分隔符设置为“%2C”时怎么可能?
答案 0 :(得分:1)
tokenize()
方法使用String的每个字符作为分隔符。因此,.tokenize("%2C")
分裂为%
,2
和C
。
请注意,您不会得到空元素(在%
与2
和C
之间),因为tokenize()
在定界符时会丢弃这些空字符串连续出现两次。
您需要split()
,它将整个字符串用作定界符:
ArrayList rseFiltersToRemoveList = rseFiltersToRemove.split('%2C');
// => [inactiveCatalog, wrongTransaction]
答案 1 :(得分:1)
tokenize使用根据StringTokenizer.tokenize的任何分隔符。
您可以简单地将split
与字符串用作分隔符:
groovy:000> 'inactiveCatalog%2CwrongTransaction'.split("%2C")
===> [inactiveCatalog, wrongTransaction]