a-z
または*
、/
、+
、などの文字の前にある数字を削除-
し、その文字に続く別の文字の前にある数字を削除しようとしています。これが私が持っているものです。
s= s.replaceAll("(\\d+)", "");
s= s.replace("*", r.toString());
s
読み取る必要がある文字列はどこにr
あり、操作の結果です。
は*
任意です。任意の文字にすることができます。前述しました
これの問題は、文字列内のすべての数字が削除されることです。
次の入力で 1 回反復する場合:
26 + 4 - 2
プログラムはこれを返します:
30 -
3 つの数字をすべて削除し、「+」を 30 に置き換えます。
これを次のように変更したいと思います(1回の繰り返しで):
26 + 4 - 2
最初の正規表現は、最初の数値セットを削除します
+ 4 - 2
2番目は、演算子の後、次の演算子の前に数字を削除します
+ - 2
次のステートメントは、演算子を式の結果に置き換えます
30 - 2
サイン、コサインなどの他の関数の問題についても同じことを望みます。
注: サインは「a」です
「シンピ」は「アピ」と同じです。
1回の繰り返しの後、次のようになります
a pi + 2
a + 2
0 + 2
コードのサンプルを次に示します。
これがMultiplyの「ケース」です
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;
}