java - Groovy String Tokenizer 匹配错误的分隔符
问题描述
我有一个字符串,它的值类似于“inactiveCatalog%2CwrongTransaction”,我想把它放到一个打破“%2C”的列表中......
String rseFiltersToRemove = "inactiveCatalog%2CwrongTransaction"
ArrayList rseFiltersToRemoveList = rseFiltersToRemove.tokenize("%2C")
我原以为列表有 2 个元素(“inactiveCatalog”和“wrongTransaction”),但结果却有 3 个(“inactive”、“atalogItems”和“wrongTransaction”)。
所以它认为“inactiveCatalog”中的“C”是一个分隔符。
当我将分隔符设置为“%2C”时,怎么会这样?
解决方案
该tokenize()
方法使用字符串的每个字符作为分隔符。因此,在和.tokenize("%2C")
上分裂。%
2
C
请注意,您不会得到空元素(在%
and 和2
and之间C
),因为tokenize()
当分隔符连续出现两次时会丢弃这些空字符串。
您需要split()
将整个字符串作为分隔符:
ArrayList rseFiltersToRemoveList = rseFiltersToRemove.split('%2C');
// => [inactiveCatalog, wrongTransaction]
请参阅在线 Groovy 演示。
推荐阅读
- python - 如何使用函数使我的代码更加优化?
- c++ - 使用 unix 套接字的同步升压 asio 中的延迟/延迟
- c - 如何将拆分的字符串保存在C结构中包含的字符数组中?
- android - 在具有灵活边界的 ImageView 上显示文本
- excel - 为什么我在使用此 VBA 过程的 Excel 工作表中出现参数错误?
- javascript - 如何在字幕highchart上设置下划线样式?
- javascript - 循环数据并推送到不同的数组以防止发送的标头错误
- javascript - 如何删除 React 和 axios 中的 GET 401 未授权错误?
- tableau-api - Tableau-累积直方图
- python - python从文件中读取输入而不是用户输入