【问题标题】:Trying to use try catch for args.length and op.length尝试对 args.length 和 op.length 使用 try catch
【发布时间】:2018-02-14 18:44:19
【问题描述】:

我正在为如何使我的程序捕获 args 和 op 长度的语法而苦苦挣扎。我需要它们都正好是 3(3 个参数和 op 必须是 3 个字符),如果不是,我需要它来打印出相应的 println 消息。我是 Java 新手,所以如果我的代码看起来不愉快或严重错误,我深表歉意。

    import java.util.*;

public class dd{
public static void main(String[] args)
{   
    if (args.length !=3)
    if (op.length !=3)
    {
        try
        {
            int = args.length ;
            System.out.println("ok");
    }
    catch(ArrayIndexOutOfBoundsException e)
    {
            System.out.println("invalid number of arguments");
    }
    catch( NumberFormatException e )
    {
            System.out.println("invalid number of characters in operator");
    }
    finally
    {

    }

    String op = args[2];
        int op1 = Integer.parseInt(args[0]);
        int op2 = Integer.parseInt(args[1]);
        switch(op) {
          case "add":
            System.out.println(op1+op2);
            break;
          case "sub":
            System.out.println(op1-op2);
            break;



        } 
    }
    }

编辑:我通过简单的 if 语句让程序按需要运行。我现在的问题是如何使用 try catch 使程序功能相同?下面是新代码

    import java.util.*;

public class tester{
public static void main(String[] args)
{   
    if (args.length != 3 ){
    System.out.println ("Invalid argument");
}
    String op = args[2];
    int op1 = Integer.parseInt(args[0]);
    int op2 = Integer.parseInt(args[1]);
{ 
    if (op.length() !=3){
    System.out.println ("Invalid op length"); 
}
    switch(op) {
        case "add":
            System.out.println(op1+op2);
            break;
         case "sub":
            System.out.println(op1-op2);
            break;

    } 
 }
}
}

【问题讨论】:

  • 抱歉,这个社区不是一个免费的导师服务,人们会坐下来一步步教你如何修复代码中的无数语法错误。认真的:退后一步。尝试一个接一个地学习一个的概念。不要把这样的东西拼凑在一起,而是制造出你和其他任何人都无法展开的混乱。
  • 代码无法编译,因为您在声明 op 之前调用了 op.length。而且因为op是一个字符串,所以应该是op.length()(方法调用)。你有什么问题?
  • 说真的:不要写 100 行代码......然后运行编译器。而是编写最少 量的代码。足以让您认为“这应该编译”。然后运行编译器……看看它要说什么。修复所有问题,编写更多代码,再次运行编译器。
  • 最后:你不会“捕捉”数组的长度。您可以查询它的长度,然后您的代码会根据该信息做出决定。您在这里捕获的异常基本上意味着:您在代码中做错了。您不会捕获此类异常 - 您编写的代码不会出错。
  • 也许不是无数 - 但你有足够的错误代码在那里很容易坐下来谈论它 30 到 60 分钟。如前所述 - 这不是这个社区的意义所在。 SO 不能代替你做那个学习部分。

标签: java arguments operators


【解决方案1】:

我不确定我是否完全理解你,但试试这个:

    public static void main(String[] args)
{   
    String op,args1;    //you need to declare the variables as string
    //you cant use the name args so i changed it to args1
    Scanner s = new Scanner(System.in);
    op = s.nextLine();  //get the input from the user and put it in op
    args1 = s.nextLine();  //get the input from the user and put it in args1
    if (args1.length() == 3 && op.length() == 3)       //You need to use .length() to get the string length
    {
        System.out.println("\"args1\" length and \"op\" length is 3 !");
    }
    else
    {
        System.out.println("one of the variables \"args1\" or \"op\" or both of them is'nt = 3");
    }
}

【讨论】:

  • 我用您提供的内容替换了代码的上半部分,但下半部分出现了多个错误。我必须使用 try catch finally 方法来实现我的目标。
  • 在课堂上使用它
  • 为什么你需要 try catch 你只是想检查 "args1" 和 "op" 长度我对吗?
  • 这个想法是学习如何使用try catch。我仍在努力集成您的代码,但在我的部分中遇到了多个错误。
  • 如果您不了解基础知识,您将无法实现这个想法。我会建议你通过一些 java 。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 2010-09-12
  • 2017-03-19
相关资源
最近更新 更多