我正在尝试删除诸如a-zor *、/、+、-等字符之前的数字,然后删除该字符之后但在不同字符之前的任何数字。这就是我所拥有的。
    s= s.replaceAll("(\\d+)", "");
    s= s.replace("*", r.toString());
s我需要读取的字符串在哪里,并且r是操作的结果。
*是任意的。它可以是任何字符。前面提到过
这样做的问题是它删除了字符串中的每个数字。
如果我要使用以下输入迭代一次:
    26 + 4 - 2
程序返回这个:
    30 - 
它删除所有三个数字,然后将“+”替换为 30。
我想将其更改为类似于此(一次迭代):
    26 + 4 - 2
第一个 RegEx 将删除第一组数字
    + 4 - 2
第二个将删除运算符之后的数字,但在下一个运算符之前
    + - 2
下一条语句将用表达式的结果替换运算符
    30 - 2
对于正弦、余弦等其他函数的问题,我也希望如此。
注意:正弦是'a'
“sin pi”与“a pi”相同
一次迭代后,它应该看起来像
    a pi + 2
    a + 2
    0 + 2
这是代码示例。
这是乘法“案例”
    case '*':
                    {
                        int m = n + 1;
                        while (m < result.length){
                            if (result[m] != '*' && result[m] != '/' && result[m] != '+' && result[m] != '-'){ //checks the item to see if it is numeric
                                char ch2 = result[m]; //makes the number a character
                                number3 += new String(new char[]{ch2}); //combines the character into a string. For example: '2' + '3' = "23".
                                ++m;}
                            else {
                                    break;
                                }}
                        resultNumber = (Double.parseDouble(number2) * Double.parseDouble(number3)); //"number2" holds the value of the numbers before the operator. Example: This number ----> "3" '*' "23"
                        equation = equation.replaceAll("(\\d+)", "");  //  <---- Line I pulled out earlier that I want to change.
                        equation = equation.replace("*", resultNumber.toString()); // <----- Line I pulled out earlier
                        result = equation.toCharArray();
                        number3 = ""; //erases any number held
                        number2 = ""; //erases any number held
                        ++n;
                        break;
                    }