2016-06-09 47 views
2

我想用','运算符拆分字符串。原始字符串的样子以下如何拆分字符串,括号内的运算符

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(","); 

帮我解决上述问题

+1

发生了什么事'1'后的最终括号分裂arr[0]arr[2]?我认为在一般情况下你确实需要一个解析器来处理这个问题。 –

+0

如果你使用split(“,”)分割一个字符串,你将得到所有在原始字符串中被“,”分隔的子字符串,所以nvl(test,0)不在分割的输出中“”)。 – theVoid

回答

3

试试这个

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(",");

+0

split正则表达式应该是这样的:String arr [] =“decode(test,0,nvl(test,0),1)”。split(“(?<= nvl \\(test,0 \\))| (?= NVL \\(测试,0 \\))“); – CrazyJavaLearner

+0

更简单:'String arr [] = {“decode(test”,“0”,“nvl(test,0)”,“1”}; – shmosel

相关问题