java中建立二维数组,第二维不确定怎么办

例如我要给str[][]赋值,,写int[][]str=newint[3][7];可以运行但结果不行;上述意为三个长度为7的一维数组,现在三个可确定,但是“7个”是未知的... 例如 我要给 str [][] 赋值,,
写 int [][] str= new int[3][7];可以运行但结果不行;
上述意为三个长度为7的一维数组,现在三个可确定,但是“7个”是未知的
我写 int [][] str= new int[3][ ];,之后赋值时就报错java.lang.NullPointerException,

应该怎么写??
已解决
展开
 我来答
paoziXiaofei
推荐于2017-11-26 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:100%
帮助的人:50.9万
展开全部
当你写int[][] str = new int[3][]之后没有处理直接使用的话肯定会空指针的,你只分配了三个一维数组,但是这是三个空的一维数组。如果你想要动态分配一维数组大小的话可以使用for循环。例如:
for(int i = 0; i < str.length;i++){
str[i] = new int[n];//n的值自己指定。

}
如果不嫌麻烦的话,一个一个的赋值:
str[1] = new int[a];
str[2] = new int[b];
str[3] = new int[c];
...
更多追问追答
追问
饿,有点懂了,str[i] = new int[n]; 就是动态定义 这3个数组中 每个的大小,是吧
追答
对,是这样的。如果用for循环的话定义出来的肯定是三个长度一样的一维数组。
dida时代
2014-09-21
知道答主
回答量:23
采纳率:25%
帮助的人:10.8万
展开全部
int x,y;
x=3;y=4;
int[][] str= new int[x][y];
str[1][1]=3;
System.out.println(str[1][1]);
,希望这段代码能给你启示。不确定时,可以用变量表示,或者写在方法里,传值
追问
这样是可以,但是对于第二维不确定,好像不行,因为每次都重新new了,相当于之前的数据不都没了吗
追答
那你那样想你的就是陷入死胡同里了,初始化之前必须赋值,所以说用变量代替。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星辰大海2002
2014-09-21 · TA获得超过121个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:117万
展开全部
之后赋值时 你是怎么赋值的?
更多追问追答
追问
一个一个赋值,两层循环
追答
当然会出现java.lang.NullPointerException,因为nt [][] str= new int[3][ ]你只是初始化了数组,以及分配了它的大小,但是里面没有对象。不知道你理解了没
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式