String[] strArray = new String[10];
strArray[0] = ".add(";
strArray[1] = ".multiply(";
strArray[0] = ").multiply(";
strArray[0] = ".subtract(";
strArray[0] = "divide(";
strArray[0] = "))))";
System.out.println(str2.append("(" + str.charAt(0)).append(strArray[0]).
   append(str.charAt(2)).append(strArray[1]).
   append(str.charAt(4)).append(strArray[2]).
       append(str.charAt(7)).append(strArray[3]).
    append(str.charAt(9)).append(strArray[4]).
  append(str.charAt(11)).append(strArray[5])

                   );

解决方案 »

  1.   

    a+b*c*(d-e/f)思路:  
      用正则表达式实现
      首先提取()内的表达式,得到d -e/f 然后先解乘除再加减, 故 先 d - e.divide#f& 然后再e.subtract#d.divide#f&&
      依此类推   到最后再把#还原成( , &还原成) 
     
      大体就是这样子的啊!
     
      现在没时间帮你写
      

  2.   


    堆栈或者递归,更好理解一些。
    public static String getString(String _pStr) {
    boolean rightParenBool = false;
    String rightParenCount = "";
    String returnWord="";
    int wordLength = _pStr.length();
    String charWord;
    for(int i =0;i < wordLength; i++){
    charWord = _pStr.substring(i, i+1);
    if(_pStr.substring(i, i+1).equals("(")){
    int rightParenPos = _pStr.indexOf(")",i);
    //returnWord += "(";
    returnWord+=getString(_pStr.substring(i+1, rightParenPos));
    returnWord += ")";
    i = rightParenPos;
    rightParenBool = false;
    }else if("+-".indexOf(charWord) != -1){
    returnWord+=changeExpress(charWord);
    rightParenCount+=")";
    }else if("/*".indexOf(charWord) != -1){
    returnWord+=changeExpress(charWord);
    rightParenBool = true;
    }else{
    returnWord+=charWord;
    if(rightParenBool){
        returnWord+=")";
        rightParenBool = false;
    }
    }

    }
    return returnWord + rightParenCount;
    }
    public static String changeExpress(String _pSymbol) {
    if (_pSymbol.equals("+")) {
    return ".add(";
    } else if (_pSymbol.equals("-")) {
    return ".subtract(";
    } else if (_pSymbol.equals("*")) {
    return ".multiply(";
    } else {
    return ".divide(";
    }
    } public static void main(String[] arges) {
    String expression = "a+b*c*(d-e/f)";
    System.out.println(getString(expression)); 
    }
      

  3.   

    实现4楼的思路
     
    代码太长,所以放到blog中,有语法高亮,看的清楚些http://blog.csdn.net/laker_914/archive/2010/01/14/5189487.aspx希望对LZ有帮助
      

  4.   

    昨天就开始按照4楼的思路整  终于整完了   
    代码惨不忍睹  可以嵌套多括号
    求教~~~
    http://blog.csdn.net/NOAON/archive/2010/01/15/5194111.aspx
      

  5.   

    参考这个帖子:http://topic.csdn.net/u/20081011/11/c69b34f6-7605-44a4-918b-a4bed78e8654.html