java - java中的字符串无法与星号(*)匹配

标签 java try-catch

我正在尝试为该程序提供命令行参数。但当运算符为 * 时,它会给出无效的运算符,例如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/

相关文章:

java - 从 USB 运行 Eclipse

validation - 带有字段的 Grails NumberFormatException 或 GroovyCastException,导致它

java - 何时使用 tryfinally 而不是 trycatchfinally

c# - 为什么在 C# 中捕获并重新抛出异常?

c# - 实现死锁异常的重试逻辑

java - JavaScript 中依赖于语言环境的字符串排序/比较

java - JButton变量无法解析

php - 我可以在extend Exception类中放什么?

java - Oracle 数据类型 : advice on choosing NUMBER versus BINARY DOUBLE?

java - XML SAX 解析器丢失数据