J'ai écrit un programme de calcul simple. Je veux que les utilisateurs entrent leur demande en tant que 12 + 12 et retournent la réponse. J'ai utilisé StringTokenizer, mais j'ai eu une erreur et elle ne m'affiche aucun résultat. Il y avait une mention que Calc est une superclasse et MinusCalc et PlusCalc sont des sous-classes. Est-ce que quelqu'un a une idée?Un programme avec StringTokenizer en Java
void inputLineData() { // This is just the function that use for this case
System.out.println(" Plz enter your all numbers");
String strAll = key.next();
StringTokenizer st = new StringTokenizer(strAll);
int n1 = Integer.parseInt(st.nextToken());
String str = st.nextToken();
int n2 = Integer.parseInt(st.nextToken());
switch (str.charAt(0)) {
case '+':
PlusCalc P = new PlusCalc(n1, n2);
listCalc[indexCalc] = P;
indexCalc++;
break;
case '-':
MinusCalc M = new MinusCalc(n1, n2);
listCalc[indexCalc] = M;
indexCalc++;
break;
default:
System.out.println("Error!");
}
}
Et c'est classe MinusCalc:
public class MinusCalc extends Calc {
@Override
public int func(){
return n1 - n2 ;
}
public MinusCalc(int n1, int n2) {
super(n1, n2);
}
}
Et c'est classe PlusCalc:
public class PlusCalc extends Calc {
@Override
public int func(){
return n1 + n2;
}
public PlusCalc(int n1, int n2) {
super(n1, n2);
}
}
Et c'est classe Calc:
public abstract class Calc {
public Calc(int n1, int n2) { // constructor with parameters!!
this.n1 = n1;
this.n2 = n2;
}
int n1,n2;
public abstract int func();
}
s'il vous plaît partager toute la trace de la pile, avec quelle ligne a causé l'erreur (mentionné dans stacktraces) – user31415
Basé sur les informations que vous avez incluses, je conclus que l'erreur réside dans la composition de sandwich myrtille. Corrige cela et tout ira bien. – DwB
Le nom de l'exception serait bien mais mon invité sauvage serait Integer.parseInt() en train d'analyser des signes ou des caractères d'espaces. –