字符串索引超出范围11错误java

字符串索引超出范围11错误java,java,arrays,sorting,Java,Arrays,Sorting,我已经编写了这段代码,它编译得很好,但当我尝试运行它时,会出现一个错误,即字符串索引超出范围:11。谁能告诉我我做错了什么 导入java.util.*; 课堂问题2 { publicstaticvoidmain(字符串[]args) { 字符串[]第1节={“居里,玛丽”,“费曼,理查德”,“日尔曼,索菲”, “图灵,艾伦”}; 字符串[]第2节={“博尔特,乌塞恩”,“格拉夫,斯蒂菲”,“哈姆,米娅”,}; 弦乐[]第3节={“巴赫,约翰·塞巴斯蒂安”,“贝多芬,路德维希·范”, “莫扎特,沃

我已经编写了这段代码,它编译得很好,但当我尝试运行它时,会出现一个错误,即字符串索引超出范围:11。谁能告诉我我做错了什么

导入java.util.*; 课堂问题2 {

publicstaticvoidmain(字符串[]args)
{
字符串[]第1节={“居里,玛丽”,“费曼,理查德”,“日尔曼,索菲”,
“图灵,艾伦”};
字符串[]第2节={“博尔特,乌塞恩”,“格拉夫,斯蒂菲”,“哈姆,米娅”,};
弦乐[]第3节={“巴赫,约翰·塞巴斯蒂安”,“贝多芬,路德维希·范”,
“莫扎特,沃尔夫冈·阿马迪斯”,“舒曼,克拉拉”};
字符串[]合并=合并(第1节,第2节);
//String[]merged=mergesortedarray(mergesortedarray(第1节、第2节)、第3节);
对于(intz=0;z
}
}您正在访问第12个元素。看看下面

for(int i = 0; i < temp.length ; i ++) {
    String temporary1 =""+ temp[i];
    String temporary2 = ""+temp[i+1]; // when i is at last element you are accessing something after  that element which is invalid.
    // everything else
for(int i=0;i

因此,您必须将其循环到temp.length-1。同样的情况在更多的地方发生。请尝试更正它。

代码正在访问第12个元素(索引11)对于长度小于12的数组。搜索错误消息并阅读其他人提出的问题,以便获得一些建议。首先表达您想做什么?嘿,我修复了您指出的问题。现在它向我显示另一个错误“空指针异常”。我对编码非常陌生,如果你能帮我解决这个问题,那就太好了。我编辑了我的代码。你能给出空指针异常的整个堆栈跟踪以及你得到的任何输出吗。java.lang.NullPointerException在问题2.mergesortedarray(问题2.java:48)在问题2.main(问题2.java:13)sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)java.lang.reflect.Method.invoke(Method.java:597)在edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)>的第一个循环和第二个循环中,比较条件应该是“主函数中的这个循环(int z=0;zfor(int i = 0; i < temp.length ; i ++) { String temporary1 =""+ temp[i]; String temporary2 = ""+temp[i+1]; // when i is at last element you are accessing something after that element which is invalid. // everything else