数组越界问题

逝火 2013-09-27 07:49:51
出错代码如下:
Scanner in=new Scanner(System.in);
System.out.println("请输入第一个序列的长度:");
int m=in.nextInt();
char []array=new char[m];
System.out.println("请输入第一个序列:")
for(int i=0;i<m;i++)
array[i]=in.nextLine().charAt(0);


--------------------------------------------------------------------------------
运行结果:
请输入第一个序列的长度:
5
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)


本人新手,求大神支招
...全文
217 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 waynexuan 的回复:
nextInt()后输入的回车会被第一个nextLine()捕获
+1
逝火 2013-09-28
  • 打赏
  • 举报
回复
引用 5 楼 waynexuan 的回复:
nextInt()后输入的回车会被第一个nextLine()捕获
原来如此
逝火 2013-09-28
  • 打赏
  • 举报
回复
引用 4 楼 wangliyunzero 的回复:

import java.util.*;

public class Test {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		System.out.println("请输入第一个序列的长度:");
		int m=in.nextInt();
		char []array=new char[m];
	        System.out.println("请输入第一个序列:");
		in.nextLine(); // 加入这句话 就可以了
		for(int i=0;i<m;i++)
			array[i]=in.nextLine().charAt(0);
	}
}
你可以看下这篇文章 http://blog.163.com/hellojavaj_v_m/blog/static/22553207720138811407968/
嗯,谢谢
WayneXuan 2013-09-27
  • 打赏
  • 举报
回复
nextInt()后输入的回车会被第一个nextLine()捕获
「已注销」 2013-09-27
  • 打赏
  • 举报
回复

import java.util.*;

public class Test {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		System.out.println("请输入第一个序列的长度:");
		int m=in.nextInt();
		char []array=new char[m];
	        System.out.println("请输入第一个序列:");
		in.nextLine(); // 加入这句话 就可以了
		for(int i=0;i<m;i++)
			array[i]=in.nextLine().charAt(0);
	}
}
你可以看下这篇文章 http://blog.163.com/hellojavaj_v_m/blog/static/22553207720138811407968/
末日哥 2013-09-27
  • 打赏
  • 举报
回复
in.nextLine().charAt(0)有问题
  • 打赏
  • 举报
回复
in.nextLine()是空字符串吧
风程序 2013-09-27
  • 打赏
  • 举报
回复
数组的长度是固定不变的 且必须要初始化

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧