【发布时间】:2020-01-19 08:10:03
【问题描述】:
我有这个字符串:
"round((TOTAL_QTY * 100) / SUM(ORDER_ITEMS->TOTAL_QTY) , 1)"
我尝试使用以下代码拆分字符串:
String[] tokens = function.split("[ )(*+-/^!@#%&]");
结果是以下数组:
"round"
""
"TOTAL_QTY"
""
""
"100"
""
""
""
"SUM"
"ORDER_ITEMS"
"->TOTAL_QTY"
""
""
""
"1"
但我需要将字符串拆分如下:
"round",
"TOTAL_QTY",
"100",
"SUM",
"ORDER_ITEMS->TOTAL_QTY",
"1"
为了更清楚。首先,我需要在拆分字符串时忽略->,然后删除结果数组中的那些空字符串。
【问题讨论】:
-
您声明“需要忽略
->”,但您想要的结果包含->。 -
您使用的工具完全错误。此任务需要扫描仪和解析器。
-
@cybersam 感谢您的评论我修改了问题以澄清我的意思
-
可能你需要
.split("(?:[\\s()*+/^!@#%&,]|-(?!>))+")