JAVA 中String数组赋初值

 我来答
竹糕枝10
2019-07-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:697万
展开全部
这是数组下标溢出的错误。就是你存入的数组长度大于你定义的数组长度。原因是因为你实例化了一个空数组。如果按你所想要的效果的话,应该定义动态长度的数组来接受,而这个长度则刚好是你从数据库获取的数组元素个数。如下代码:
//从数据库取得结果集rs
String[]
name=new
String[rs.getRow()];
for(i
=
0;rs.next();i++){
name[i]
=
rs.getString(1);//后面这段代码直接拿你的,你这里取值赋值为同一个值也得自己更改下
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赏清竹仝风
2020-05-04 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:33%
帮助的人:959万
展开全部
数组下标越界
数组是不允许扩充空间的,创建时需指定数组空间大小。你看你的循环语句,明显会出错!
改用集合形式才可以实现,最后转化成数组!
List
list=new
ArrayList
();
while(rs.next()){
list.add(rs.getString(1));
}
Object[]
objects
=
list.toArray();
不知道你能不能看懂javaSE!
你写的循环语句,也不是标准的开发形式,往往采用next()方法取值:自动取出当前记录,并移动游标判断是否还有记录。
还有就是往往不采用rs.getString(index)提取,而是采用rs.getString("列名")的形式取出数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亥元修计雁
2020-03-19 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:769万
展开全部
String[]
name
=
new
String[]{};

这样定义数组它的实际长度为0
所以你调用name[0]的时候就已经是数组越界了
你可以打印一个name.length看看就知道了

建议你用List
name
=
new
ArrayList
();来接收,如果必须用数组的话,
可以将list转换成数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友19c2605cf87
2019-05-09 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:27%
帮助的人:795万
展开全部
凡是new
的都在在堆中开辟内存的
你定义的是一个静态一维数组
里面是空的(因为你带了{
}
号)
不过也有内存
他的内存空间是在堆中的
String
str[
]
=
new
String[10];
像这样
是一个
动态的
它在堆中开辟了10
个空间
且他们的地址是连续的
空间大小都是一致的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式