2016-06-09 166 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