日期:2014-05-20  浏览次数:20623 次

求助!! 正则替换问题!!
比如 有这么一个方程 0.000009*X^2-0.003963*X^3+123.352425

我要把 X^2 替换成 Math.pow(X,2)   
      X^3 替换成 Math.pow(X,3)

注意: X^* *代表任意数字 而且该方程的 X^*数量不确定
       比如:可能是这样     0.000009*X^2-0.003963*X^3+123.352425
           也可能是这样   0.000009*X^2-0.003963*X^3/0.00263*X^4+123.352425

怎么把 x^*之类的字符替换成 相对应的  Math.pow(X,*) 

大神们!!帮帮我!! 谢啦!!
------最佳解决方案--------------------

public static void main(String[] args) throws Exception {
String str = "0.000009*X^2-0.003963*X^3/0.00263*X^4+123.352425";
str = str.replaceAll("(?i)(x)\\^(\\d+)","Math.pow($1,$2)");
System.out.println(str);
}

------其他解决方案--------------------
System.out.println("0.000009*X^2-0.003963*X^3+123.352425".replaceAll("X\\^(\\d+)", "Math.pow(X,$1)"));