如何在括号“)(”上拆分字符串?
输入:
val str="(2500 - Analytical Charge Percentage of Monitoring Structure (MS) type Sub-Business Unit (SSBU) : 803.130000000000000000)(388 - Monitoring Structure (MS) type Sub-Business Unit (SSBU) : JzCddaxT)"
想要在 () 中使用两个更大的字符串作为数组的元素。在这种情况下,如果我们在 ")(" 上拆分:
预期输出:
arr(0) = "(2500 - Analytical Charge Percentage of Monitoring Structure (MS) type Sub-Business Unit (SSBU) : 803.130000000000000000"
arr(1) = "388 - Monitoring Structure (MS) type Sub-Business Unit (SSBU) : JzCddaxT)"
我正在使用 str.split("[\)\(]")但它不起作用。
回答
split("[)(]")
将在 a( 和a上拆分),因此此(缩写)文本:
"(2500 (MS) Unit (SSBU) : 803.13)(388 (MS) Unit (SSBU) : JzCddaxT)"
变成这样:
["", "2500 ", "MS", " Unit ", "SSBU", " : 803.13", "", "388 ", "MS", " Unit ", "SSBU", " : JzCddaxT"]
这显然不是你想要的。
由于您似乎只想拆分 2-character substring ")(",因此不要使用[ ]字符类。
split(")(")
这将产生你所展示的:
["(2500 (MS) Unit (SSBU) : 803.13", "388 (MS) Unit (SSBU) : JzCddaxT)"]