java程序出现Exception in thread "main"

程序要求输入姓名。分别输出姓和名。如输入leedu。输出fistname:leelastname:duimportjava.util.Scanner;publicclas... 程序要求输入姓名。分别输出姓和名。如输入lee du。输出fist name: lee last name:du
import java.util.Scanner;
public class Program7 {

public static void main(String[] args) {
int i,j;
System.out.print("请随便输入姓名:");
Scanner in=new Scanner(System.in);
String name=in.nextLine();
int n=name.length();
char[] ch=name.toCharArray();
for(i=0;i<n;i++);
{
char c=ch[i];
if(c!=' ')
System.out.println(ch[i]);
else
j=i+1;
for(j=i+1;j<n;j++);
{
System.out.println(ch[j]);
}
}
}
}
出错提示:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
展开
 我来答
百度网友2acf15a
2014-03-21 · TA获得超过1534个赞
知道小有建树答主
回答量:1123
采纳率:81%
帮助的人:268万
展开全部
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

这句话表示异常出现在main这个线程里面,错误是java.lang.ArrayIndexOutOfBoundsException。这个错误是你下标获取超出范围了,一般是例如你数组长度为2.但是你获取数组[3].这时候就会报这个错,建议你自己学会调试。。

希望能够帮到你!
a330978443
2014-03-21 · 超过33用户采纳过TA的回答
知道答主
回答量:159
采纳率:0%
帮助的人:82.6万
展开全部
根据报错 日志来查出报错行,使用debug来定位错误的报错,和查看i,j的值。你的两个for循环都当i值和j值达到输入值的长度时,就跳出了循环,而此时下标已等于了输入值的长度,所以你在char c=ch[i];应该就已经发生了数组下标越界错误.你去掉两个for循环后面的;号,可能解决这个问题
追问
还有就是使用while(ch[i]!=' ')报错,而把while改成if就能运行。你能帮忙写一个程序吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a462060326
2014-03-21 · 超过19用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:51.4万
展开全部
你两个for循环后面都多了个;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式