开关-线程中的异常";“主要”;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
。谢谢兄弟!帮助很大=你很受欢迎。随时接受:-)