错误:线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0在test.main(test.java:8)

时间:2014-02-17 15:06:24

标签: java

//i m doing this program for checking switch condition but there is an error

所以请你帮忙解决这个问题     公共课堂考试{

public static void main(String[] args) throws Exception
{
    **char grade = args[0].charAt(0);**//here is the error

try {
    switch (grade){
            case A:{
        System.out.println("CASE A");
        break;
    }
    case 'B':{
        System.out.println("CASE B");
    }
    case 'C':{
        System.out.println("CASE C");
    }
    case 'D':{
        System.out.println("CASE D");
    }
    default:
        System.out.println("last");
    }

} catch (Exception e) {
    // TODO: handle exception
}
System.out.println("what is this");

    }       
    }

java.lang.ArrayIndexOutOfBoundsException:0错误发生我应该如何解决它

6 个答案:

答案 0 :(得分:3)

public static void main(String[] args) throws Exception
{
      if(args.length>0){
        **char grade = args[0].charAt(0);**//here is the error
      }else{
          char grade='F';
      }

try {
    switch (grade){
            case 1:{
        System.out.println("CASE A");
        break;
    }
    case 'B':{
        System.out.println("CASE B");
    }
    case 'C':{
        System.out.println("CASE C");
    }
    case 'D':{
        System.out.println("CASE D");
    }
    default:
        System.out.println("last");
    }

} catch (Exception e) {
    // TODO: handle exception
}
System.out.println("what is this");

    }       
    }

答案 1 :(得分:2)

看起来你正在执行它而不传递必要的参数。你确定要通过它们吗?

答案 2 :(得分:0)

CommandLineArgument

您正在执行命令行参数。运行代码时参数。否则您将获得ArrayIndexOutOfBoundException

检查args[]长度的长度,然后使用值

if(args.length>0)

答案 3 :(得分:0)

public static void main(String[] args)

是主线程。 args 是一个参数,用于存储我们在程序中传递的命令行参数。请通过传递以下参数来执行程序:

java ProgramName ThisIsArgument1 ThisIsArgument2 ManyMoreOptionalArguments

答案 4 :(得分:0)

当您通过命令行调用java程序时,如下所示:

java SwitchTest 1

这个人'String [] args'(这个字符串数组是主方法签名的一部分)将获取所有参数,即在命令执行程序后添加的元素({{1在这个例子中,它是java SwitchTest

如果您执行这样的程序,请使用您的代码:

1

您的输出应为:

java SwitchTest 1

如果您在没有任何参数的情况下执行(即CASE A之后没有任何参数),您将获得java SwitchTest

答案 5 :(得分:0)

您是否将其传递给运行时参数?试试这个:

Command Line> java test A

或试试这个:

char grade = '[Char in here]';

这将是这样的:

char grade = 'A';