Java 如何使用括号内的运算符拆分字符串

Java 如何使用括号内的运算符拆分字符串,java,Java,我想用“,”运算符拆分字符串。原始字符串如下所示 input : decode(test,0,nvl(test,0),1) My expected output: decode(test 0 nvl(test,0) 1 我尝试了以下程序 String input = "decode(test,0,nvl(test,0),1)"; String[] arr = input.split(","); 帮我解决上述问题试试这个 String arr[ ]= "decode(test,0,nvl(t

我想用“,”运算符拆分字符串。原始字符串如下所示

input : decode(test,0,nvl(test,0),1)

My expected output:
decode(test
0
nvl(test,0)
1
我尝试了以下程序

String input = "decode(test,0,nvl(test,0),1)";
String[] arr = input.split(",");
帮我解决上述问题

试试这个

String arr[ ]= "decode(test,0,nvl(test,0),1)".split ("nvl\\(test,0\\)");
结果

arr[0] == "decode(test,0,"
arr[1] == "nvl(test,0)"
arr[2] == ,1

现在使用
split(“,”)拆分
arr[0]
arr[2]

1
之后的最后一个括号发生了什么?我认为在一般情况下,您确实需要一个解析器来处理这个问题。如果您使用拆分(“,”)拆分字符串,您将获得原始字符串中由“,”分隔的所有子字符串,因此nvl(test,0)不在拆分(“,”)的输出中。拆分正则表达式应该如下所示:string arr[]=“decode(test,0,nvl(test,0),1)”。拆分(“(?更简单:
stringarr[]={“decode(test)”、“0”、“nvl(test,0)”、“1”};