Cześć!
Mam za zadanie stworzyć prosty kalkulator Big Decimal.
Co mam to:
package Kalkulator;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) {
Calc c = new Calc();
String wynik = c.doCalc(args[1+2]);
System.out.println(wynik);
}
}
class Calc {
public String doCalc(String cm) {
BigDecimal a;
BigDecimal b;
String cmd[];
Map<String, Method> znaki = new HashMap<String, Method>();
try {
znaki.put("-",
BigDecimal.class.getMethod("subtract", BigDecimal.class));
znaki.put("+", BigDecimal.class.getMethod("add", BigDecimal.class));
znaki.put("*",
BigDecimal.class.getMethod("multiply", BigDecimal.class));
znaki.put("/",
BigDecimal.class.getMethod("divide", BigDecimal.class));
cmd = cm.trim().split(" ");
a = new BigDecimal(cmd[0]);
b = new BigDecimal(cmd[2]);
return String.valueOf((BigDecimal) znaki.get(cmd[1]).invoke(a, b));
} catch (Exception e) {
return "Invalid command to calc";
}
}
}
Kalkulator działa prawidłowo ale otrzymuje również wyjątek:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Kalkulator.Main.main(Main.java:14)
Potrzebuje pomocy z pozbyciem się tego potworka. :)
Pomocy!