java - 计算java中第一个参数的长度

标签 java arguments

我想打印第一个argument(args[0])的长度,但得到ArrayOutOfBountException:

public class Main {
    public static void main(String[] args){
        args[0] = "Hello";
        System.out.println(args[0].length());

    }
}

异常(exception):

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at Main.main(Main.java:3)

最佳答案

当你编写代码时,

public class Main {
    public static void main(String[] args){
        args[0] = "Hello";
        System.out.println(args[0].length());

    }
}

此时args[0]="Hello";,如果你的args字符串数组没有初始化,那么在执行时我应该认为你可能已经使用了该命令这样 java Main 来执行你的基本程序。

这会导致错误,您尚未通过命令行传递任何参数,因此您的String[] args尚未初始化,并且无法将您的字符串“Hello”存储在数组中args[0] 并且您试图打印一个空数组并抛出异常

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at Main.main(Main.java:3)

更新答案:
现在是的,您可以在打印之前使用它来验证字符串参数长度。

public class Main {
    public static void main(String[] args){
        if(args.length !=0){
           System.out.println(args[0].length());
        }else{
          args = new String[1]; //Initilize first
          args[0] = "Hello";    //Store value in array element 
          System.out.println(args[0].length()); //Print it.
        }  
    }
}

关于java - 计算java中第一个参数的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57344078/

相关文章:

java:sortedList类比较错误

java - 如果返回类型为 java.sql.Timestamp,则基于接口(interface)的投影 getter 方法给出异常

C – 将可变数量的参数传递给 main

android - 在 Android 上使用 FragmentActivity.getIntent().getExtras() 时出现 NullPointerException

java - 在通知图标中添加小图标

java - 重载枚举抽象方法

java - eclipse启动错误信息,如何捕获它

python - 如何使用选项运行 python 脚本

php - 在 php 中键入提示

C++ 将指针传递给函数 (Howto) + C++ 指针操作