如有个字符串"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
如果行的话,写出个例子来也好!谢谢!

解决方案 »

  1.   

    import java.util.*;
    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>
      

  2.   

    谢谢bigbug9002,很详细,已经使用你这方法做出来了!