j'ai une expression arithmétique que je reçois dans deux vecteurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
String[] val = textField.getText().split("\\D");
String[] op = textField.getText().split("\\d");
je fais une boucle avec un switch pour faire le calcul que voici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
int res;
for (int i = 1; i < val.length; i++) {
     switch (op[i-1]) {
	case "+":
		if(i == 1){
	         	res = Integer.valueOf(val[0]);
			res = res + Integer.valueOf(val[i]);
		}else{
			res = res + Integer.valueOf(val[i]);
		}
		break;
 
	case "-":
		if(i == 1){
			res = Integer.valueOf(val[0]);
			res = res - Integer.valueOf(val[i]);
		}else{
	        	res = res - Integer.valueOf(val[i]);
		}
		break;
 
	case "*":
		if(i == 1){
			res = Integer.valueOf(val[0]);
			res = res * Integer.valueOf(val[i]);
		}else{
			res = res * Integer.valueOf(val[i]);
		}
		break;
 
	case "/":
                if (Integer.valueOf(val[i]) != 0) {
			if(i == 1){
				res = Integer.valueOf(val[0]);
				res = res + Integer.valueOf(val[i]);
		       }else{
				res = res / Integer.valueOf(val[i]);
			}
		}else{
			JOptionPane.showMessageDialog(null, "Division par 0 impossible", "Erreur division", JOptionPane.WARNING_MESSAGE);
		}
		break;
	}
}
txtRes.setText(String.valueOf(res));
j'ai essayé cette chaine 5+6-2*3=27 alors ça m'a donné -1
je ne trouve pas l'erreur ??