这是一项大学任务(样本学术报告),我以为我已经完成并将要提交,但是当我开始测试时...我在主要的第60行继续接收ArrayIndexOutOfBoundsException,我看不出原因。我是Java的新手,但实际上花了很多时间进入这个程序。非常感谢任何帮助/建议。 第60行=“int credits = Integer.parseInt(input [1]);” //我认为错误是数据类型的原因???我迷路了。
课程/成绩/报告类将数据传递给主java2pgm1
答案 0 :(得分:0)
当你调用split时,它会返回一个数组。在这里你使用(“:”)分裂 在访问变量输入之前,您需要检查变量输入的长度。
String[] input = course.split(":");
int credits = Integer.parseInt(input[1]);
输入数组可能不包含多于1个值,因此失败
答案 1 :(得分:0)
当用户的输入与预期格式course_number:number_of_credits:grade_received:term_taken
不对应时,将发生异常。在你的情况下,你遇到了什么输入值这个例外?它是否包含:
?
建议您在引用index [n]
之前测试input
数组的长度
答案 2 :(得分:0)
String[] input = course.split(":");
int credits = Integer.parseInt(input[1]);
Integer term = Integer.parseInt(input[3]);
Course cObject = new Course(input[0],credits,input[2],input[3]);
你主要的上述片段总是假设course
字符串有abc:def:ghi:jkl atleast 3“:”in。当字符串没有3“:”时,处理错误情况总是好的做法。将您的代码修改为以下内容
String[] input = course.split(":");
if(input.length == 4)
{
int credits = Integer.parseInt(input[1]);
Integer term = Integer.parseInt(input[3]);
Course cObject = new Course(input[0],credits,input[2],input[3]);
}
else
{
//show some error message to user
}
答案 3 :(得分:0)
此处输入数组的大小可以是0或1,您可以通过input.length
进行检查。
如果数组的大小小于或等于要从数组获取的元素,则抛出运行时异常ArrayIndexOutOfBoundsException。