JAVA 中String数组赋初值
4个回答
展开全部
这是数组下标溢出的错误。就是你存入的数组长度大于你定义的数组长度。原因是因为你实例化了一个空数组。如果按你所想要的效果的话,应该定义动态长度的数组来接受,而这个长度则刚好是你从数据库获取的数组元素个数。如下代码:
//从数据库取得结果集rs
String[]
name=new
String[rs.getRow()];
for(i
=
0;rs.next();i++){
name[i]
=
rs.getString(1);//后面这段代码直接拿你的,你这里取值赋值为同一个值也得自己更改下
}
//从数据库取得结果集rs
String[]
name=new
String[rs.getRow()];
for(i
=
0;rs.next();i++){
name[i]
=
rs.getString(1);//后面这段代码直接拿你的,你这里取值赋值为同一个值也得自己更改下
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组下标越界
数组是不允许扩充空间的,创建时需指定数组空间大小。你看你的循环语句,明显会出错!
改用集合形式才可以实现,最后转化成数组!
List
list=new
ArrayList
();
while(rs.next()){
list.add(rs.getString(1));
}
Object[]
objects
=
list.toArray();
不知道你能不能看懂javaSE!
你写的循环语句,也不是标准的开发形式,往往采用next()方法取值:自动取出当前记录,并移动游标判断是否还有记录。
还有就是往往不采用rs.getString(index)提取,而是采用rs.getString("列名")的形式取出数据
数组是不允许扩充空间的,创建时需指定数组空间大小。你看你的循环语句,明显会出错!
改用集合形式才可以实现,最后转化成数组!
List
list=new
ArrayList
();
while(rs.next()){
list.add(rs.getString(1));
}
Object[]
objects
=
list.toArray();
不知道你能不能看懂javaSE!
你写的循环语句,也不是标准的开发形式,往往采用next()方法取值:自动取出当前记录,并移动游标判断是否还有记录。
还有就是往往不采用rs.getString(index)提取,而是采用rs.getString("列名")的形式取出数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String[]
name
=
new
String[]{};
这样定义数组它的实际长度为0
所以你调用name[0]的时候就已经是数组越界了
你可以打印一个name.length看看就知道了
建议你用List
name
=
new
ArrayList
();来接收,如果必须用数组的话,
可以将list转换成数组
name
=
new
String[]{};
这样定义数组它的实际长度为0
所以你调用name[0]的时候就已经是数组越界了
你可以打印一个name.length看看就知道了
建议你用List
name
=
new
ArrayList
();来接收,如果必须用数组的话,
可以将list转换成数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
凡是new
的都在在堆中开辟内存的
你定义的是一个静态一维数组
里面是空的(因为你带了{
}
号)
不过也有内存
他的内存空间是在堆中的
String
str[
]
=
new
String[10];
像这样
是一个
动态的
它在堆中开辟了10
个空间
且他们的地址是连续的
空间大小都是一致的
的都在在堆中开辟内存的
你定义的是一个静态一维数组
里面是空的(因为你带了{
}
号)
不过也有内存
他的内存空间是在堆中的
String
str[
]
=
new
String[10];
像这样
是一个
动态的
它在堆中开辟了10
个空间
且他们的地址是连续的
空间大小都是一致的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询