按 Java 中首次找到的字符串拆分

2022-09-01 16:55:51

是否可以告诉 String.split(“(”) 函数它只能按第一个找到的字符串 “(”进行拆分?

例:

String test = "A*B(A+B)+A*(A+B)";
test.split("(") should result to ["A*B" ,"A+B)+A*(A+B)"]
test.split(")") should result to ["A*B(A+B" ,"+A*(A+B)"]

答案 1

是的,绝对可以:

test.split("\\(", 2);

正如 String.split(String,int) 的文档所解释的那样:

该参数控制应用模式的次数,因此会影响结果数组的长度。如果限制 n 大于零,则模式将最多应用 n - 1 次,数组的长度将不大于 n,数组的最后一个条目将包含除最后匹配的分隔符之外的所有输入。limit


答案 2
test.split("\\(",2);

有关详细信息,请参阅 javadoc

编辑:转义括号,根据下面@Pedro的评论。