Wyjątek w zadaniu z kalkulatorem: java.lang.ArrayIndexOutOfBoundsException

0

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!

2
String wynik = c.doCalc(args[1+2]);

Dlaczego wczytujesz akurat trzeci (formalnie czwarty) argument z linii poleceń?

1 użytkowników online, w tym zalogowanych: 0, gości: 1