java数组越界问题,我是新手,求高手解决啊!

elvaers 2014-11-25 06:36:02
import java.util.Scanner;
import java.util.Vector; //向量类;
public class String_ {

static Scanner reader = new Scanner(System.in);
public static void main(String[] args){

Vector vct = new Vector();
System.out.println("请输入支付串:");
String b = reader.next();
vct.addElement(b);
System.out.println("请再次输入:");
String a = reader.next();
vct.addElement(a);
vct.addElement("end");
System.out.println(vct.toString());
vct.insertElementAt("nice",vct.capacity()/2 );
System.out.println(vct.toString());
}

}
这道题原题是: 使用vector向量来保存用户输入的若干个字符串,循环读入用户输入的字符串,以end结束,将所有字符串显示出来,在所有字符串的中间位置插入“nice ”,再次显示所有的字符串。
已经编号:用Eclipse编译错误提示: 希望 高手分析一下错误,感激不尽啊。
请输入支付串:
yuyuhuihj
请再次输入:
hjhjhj
[yuyuhuihj, hjhjhj, end]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 > 3
at java.util.Vector.insertElementAt(Vector.java:598)
at test.String_.main(String_.java:18)

...全文
239 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyc_ 2014-11-25
  • 打赏
  • 举报
回复
vct.insertElementAt("nice",vct.capacity()/2 );改为vct.insertElementAt("nice",vct.size()/2 ); capacity是容量,默认为10。size是里面的元素个数。
姜小白- 2014-11-25
  • 打赏
  • 举报
回复
Vector() 构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。 public void insertElementAt(E obj, int index)将指定对象作为此向量中的组件插入到指定的 index 处。 此向量中的每个索引大于等于指定 index 的组件都将向上移位,使其索引值变成比以前大 1 的值。 索引必须为一个大于等于 0 且小于等于向量当前大小的值(如果索引等于向量的当前大小,则将新元素添加到向量)。 楼主的当前大小为3 vct.insertElementAt("nice",vct.capacity()/2 ); 相当于 vct.insertElementAt("nice",10/2 ); 效果同 vct.insertElementAt("nice", 5); 你的vct 中只有三个元素,却要给第5个位置插入,所以出错
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

62,622

社区成员

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

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