我正在尝试为该程序提供命令行参数。但当运算符为 * 时,它会给出无效的运算符,例如2 3 *
import java.io.*;
import java.util.*;
public class Operation{
public static void main(String args[]){
int num1, num2, res=0;
try{
Exception ex = new Exception();
if(args.length < 3)
throw(ex);
}catch (Exception e){
System.out.println("Illegal no. of arguments");
System.exit(0);
}
try{
Exception ex1 = new Exception();
num1 = Integer.parseInt(args[0]);
num2 = Integer.parseInt(args[1]);
if(args[2].equals("+"))
res = num1 + num2;
else if(args[2].equals("-"))
res = num1 - num2;
else if(args[2].equals("*"))
res = num1 * num2;
else if(args[2].equals("/"))
res = num1 / num2;
else
throw(ex1);
}catch (Exception e){
System.out.println("Invalid Operator");
System.exit(0);
}
try{
Exception ex2 = new Exception();
if(res < 0)
throw(ex2);
else
System.out.println("Result = " + res);
}catch (Exception e){
System.out.println("Result is negative");
}
}
}
最佳答案
很可能,*
字符永远不会出现在您的 Java 程序中。通常,用于调用 java 程序的 shell 会将其识别为通配符并用某些内容替换它;例如当前目录中的所有文件。在命令行调用程序时,您是否尝试过“*”?
或者,您可以更改程序:不要从命令行读取参数;要求用户一一键入值,请参阅 Getting Keyboard Input
关于java - java中的字符串无法与星号(*)匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29214703/