私はできることをテストするために電卓を作っていますが、私は小さな問題があります。私は私の "入力"メソッドで入力パラメータを取って、文字列として数字を入力させ、シンボルの両側に倍精度を解析させようとしています。しかし、私はこれを行う方法がわかりません。私はif文を使用することを考えていました。if(symbol)メソッドを実行するようなものでした。複数のシンボルで分割してシンボルに基づいてメソッドを呼び出す方法
public class Calculation_Controls extends JPanel implements ActionListener, KeyListener{
public double A, B;
public String input(String nums){
String[] split = nums.split("[-.+,/,*,^]");
int left = Integer.parseInt(split[0]);
int right = Integer.parseInt(split[1]);
}
//What I am trying to invoke for the "if (symbol)"
public double add(double a, double b){
this.a = A;
this.b = B;
return (a + b);
}
public double subtract(double a, double b){
this.a = A;
this.b = B;
return a - b;
}
public double multiply(double a, double b){
this.a = A;
this.b = B;
return a * b;
}
public double divide(double a, double b){
this.a = A;
this.b = B;
return a/b;
}
public double pwr(double a, double b){
this.A = a;
this.B = b;
return (Math.pow(a, b));
}
それで 'if else'や' switch'文を使ってシンボルに基づいてメソッドを呼び出すとどうなりますか? –
'split'よりも正規表現を使うほうがいいです。区切り文字が何であるか気にしない場合、 'split'は最も便利です。これは、ここでは当てはまりません。また、 '.'を演算子として扱わないでください。あなたが書いたように、ユーザが '2.03'を置くと' split'は演算子のように '.'を扱い、両側の整数を解析して2と3を与えます。これはあなたが望むものではありません。 '.'を演算子のリストの外に残して、' Double.parseDouble'を使用します。 – ajb
@ajb 'split'は正規表現をとり、Jarredが使用する奇妙な正規表現を使用すると、すでに2.03で2にジャンプします。 – Robert