La multiplication ne fonctionne pas dans une calculatrice java simple
J'essaie de créer une calculatrice de base. Voici mon code:
public class Calc2 {
public static void main(String[] args) {
String[] calcArray;
calcArray = new String[3];
calcArray[0] = args[0];
calcArray[1] = args[1];
calcArray[2] = args[2];
double result = 0;
if (args.length == 3) {
double firstNumber = Double.parseDouble(args[0]);
int operator = args[1].charAt(0);
double secondNumber = Double.parseDouble(args[2]);
System.out.print(args[0] + " " + args[1] + " " + args[2] + " = ");
switch (operator)
{
case ('+'):
result = firstNumber + secondNumber;
break;
case ('-'):
result = firstNumber - secondNumber;
break;
case ('*'):
result = firstNumber * secondNumber;
break;
case ('/'):
result = firstNumber / secondNumber;
break;
default:
System.out.println("Invalid Operator selected");
}
System.out.printf(" " + result);
}
else
{
System.out.println("Incorrect arguments quantity");
}
}
}
Semble que "-","+","/" les opérateurs fonctionnent correctement, mais quand j'essaie d'exécuter la multiplication dans ce code, par exemple:
java Calc2 4 * 3
Le programme affiche le résultat suivant:
Incorrect argument quantity
Veuillez expliquer pourquoi cela se produit et comment le réparer. Grâce.
2 answers
Le caractère *
tapé sur la ligne de commande est interprété par le shell comme un caractère globbing, c'est-à-dire tous les fichiers du répertoire courant. La ligne de commande en cours d'alimentation en Java est quelque chose comme
3 Calc2.class Calc2.java 4
Plus tous les autres fichiers qui peuvent être présents.
Échappez-le dans le shell (ou citez-le pour éviter l'interprétation du shell).
java Calc2 3\* 4
Ou
java Calc2 3 '*' 4
*
est développé par le shell, donc vous obtiendrez la liste des fichiers en tant qu'arguments. Vous devez échapper:
java Calc2 4 "*" 3