2017-12-27 511 views
0

我有如下所示的格式圖案的複雜的字符串:如何將帶有「java方法簽名」格式的字符串分解成部分?

(Command)(Parameter_1,Parameter_2,Parameter_3,Parameter_n) 

實施例:PADDING_LEFT(LAST_USE_COUNTER(1450,5),5,0)

欲它們分割如下:

命令:PADDING_LEFT

Parameter_1:LAST_USE_COUNTER(1450,5)

Parameter_2:5

Parameter_3:0

有沒有辦法來打破這樣的字符串?

+0

參數是如何定義的?作爲自我定義的模式和文字? – gtgaxiola

+1

你看過使用像Antlr這樣的工具http://www.antlr.org –

+0

看看[如何在Java中分割字符串](https://stackoverflow.com/q/3481828)並讓我們知道你有什麼具體的問題分裂它(應該包括一個[mcve])。 – Dukeling

回答

1

我會走下正則表達式路線。更健壯的方法可能是使用Java語法分析器,如JavaParser

MethodCallExpr bs = 
    (MethodCallExpr) JavaParser.parseExpression 
        ("PADDING_LEFT(LAST_USE_COUNTER(1450,5),5,0)"); 
System.out.println(bs.getName()); 
List<Expression> arguments = bs.getArguments(); 
for (int i = 0; i < arguments.size(); ++i) { 
    System.out.printf("Argument_%d: %s%n", (i + 1), arguments.get(i)); 
} 
相關問題