このフォーム [1+2/3*5-4] でユーザー入力を受け入れる電卓を作成する必要がある宿題があります。文字列からの値を格納するために配列を使用することは想定されていません。代わりに、一度に 3 つの数字と 2 つの演算子を使用することになっています。私の質問は、数値と演算子をどのように保存し、それらを保存して値を計算すると、元の文字列から新しい数値と新しい演算子を取得するかです。これは私がこれまでのところ正しい方向にあるかどうかわからないものです。
public class ExpresionEvaluation {
private static String expresion;
static double o1;
static double o2;
private static double o3;
private static char operator1;
private static char operator2;
public static double getO1(String s){
s=s.trim();
String r ="";
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = r + s.charAt(0);
s = s.substring(1);
}
o1 = Double.parseDouble(r);
return(o1);
}
public static char getOperator1(String s){
s=s.trim();
char r;
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = s.charAt(1);
s = s.substring(2);
}
r = operator1;
return(r);
}
public static double getO2(String s){
s=s.trim();
String r ="";
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = r + s.charAt(2);
s = s.substring(3);
}
o2 = Double.parseDouble(r);
return(o2);
}
public static char getOperator2(String s){
s=s.trim();
char r;
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = s.charAt(3);
s = s.substring(4);
}
r = operator2;
return(operator2);
}
public static double getO3(String s){
s=s.trim();
String r ="";
while (s.length()>0 && s.charAt(0)>='0' && s.charAt(0)<='9'){
r = r + s.charAt(4);
s = s.substring(5);
}
o3 = Double.parseDouble(r);
return(o3);
}
}