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: 展开
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: 展开
3个回答
展开全部
根据报错 日志来查出报错行,使用debug来定位错误的报错,和查看i,j的值。你的两个for循环都当i值和j值达到输入值的长度时,就跳出了循环,而此时下标已等于了输入值的长度,所以你在char c=ch[i];应该就已经发生了数组下标越界错误.你去掉两个for循环后面的;号,可能解决这个问题
追问
还有就是使用while(ch[i]!=' ')报错,而把while改成if就能运行。你能帮忙写一个程序吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你两个for循环后面都多了个;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询