Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
开关-线程中的异常";“主要”;java.lang.ArrayIndexOutOfBoundsException:0_Java_Exception_Switch Statement - Fatal编程技术网

开关-线程中的异常";“主要”;java.lang.ArrayIndexOutOfBoundsException:0

开关-线程中的异常";“主要”;java.lang.ArrayIndexOutOfBoundsException:0,java,exception,switch-statement,Java,Exception,Switch Statement,我在这个测试用例程序中发现了这个问题: package testecase; public class TesteCase { public static void main(String args []) { // TODO code application logic here switch (args [0] .charAt (0)) { case 'A':System.out.println("Vogal A ");

我在这个测试用例程序中发现了这个问题:

package testecase;

public class TesteCase {
    public static void main(String args []) {
        // TODO code application logic here
        switch (args [0] .charAt (0)) {
        case 'A':System.out.println("Vogal A ");
        break;

        case 'E':System.out.println("Vogal E ");
        break;

        default:System.out.println("Não é vogal ");

        }
    }
}

我怎样才能解决它

异常告诉您运行时您的
args
数组没有任何条目

您可以通过调用JVM来改变这一点,就像

java TestCase A B C 
换句话说:该数组保存启动JVM时提供给JVM的参数。命令行上没有参数。。。以空数组结束

或者给出另一个视图:您的代码包含关于传入数据的两个假设:

  • 使用
    args[0]
    要求数组至少有一个条目
  • 使用
    …字符(0)
    要求该第一个条目至少一个字符
  • 你猜怎么着:这不一定是真的

    关于编程,您学到了第一个非常有价值的教训:不要期望运行时的“现实”与您的假设相符

    含义:当数据从外部传入时,第一步是验证它是否满足您的期望。比如:

    if (args.length > 0) {
     ... process input
    } else {
     tell user: no input
    

    类似的字符串处理你打算做

    确保在运行程序时向程序发送参数:
    java TesteCase A


    另外,一般来说,您不应该信任用户输入,因此我建议您首先检查args的长度。一旦知道它不是空的,就可以尝试读取它。

    运行代码时是否传递参数?检查args.lenght>0只需将参数传递给程序即可<代码>java TestCase Abc例如,在第一个案例中输入一般提示:您应该添加一个检查,检查是否实际传递了参数。永远不要“信任”用户输入!一种常见的做法是输出和退出。如果您在像Eclipse这样的IDE中运行它,您需要在运行配置中添加参数。或者,如果您是从命令行运行它,那么您可以执行
    JavaTestCaseYourString
    。谢谢兄弟!帮助很大=你很受欢迎。随时接受:-)