如有个字符串"3+a(4+c()+d(e(3)+3))+b(2)"
现在要求是:将这字符串内的函数和对应的参数分解出来,
结果:
a():4+c()+d(e(3)+3)
b():2
c():
d():e(3)+3
e():3
如果行的话,写出个例子来也好!谢谢!
现在要求是:将这字符串内的函数和对应的参数分解出来,
结果:
a():4+c()+d(e(3)+3)
b():2
c():
d():e(3)+3
e():3
如果行的话,写出个例子来也好!谢谢!
public class Test2{
public static void main(String[] args){
String s="3+a(4+c()+d(e(3)+3))+b(2)";
Stack<Integer> stk=new Stack<Integer>();
StringBuilder sb=new StringBuilder();
for(int i=0;i<s.length();i++){
char c=s.charAt(i);
if(c=='('){
stk.push(i);
}
if(c==')'){
if(!stk.empty()){
int start=stk.pop();
System.out.println(s.charAt(start-1)+"():"+s.substring(start+1,i));
}else{
System.out.println("括号不匹配");
}
}
}
}}
结果:F:\java>java Test2
c():
e():3
d():e(3)+3
a():4+c()+d(e(3)+3)
b():2F:\java>