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,
应该怎么写??
已解决 展开
写 int [][] str= new int[3][7];可以运行但结果不行;
上述意为三个长度为7的一维数组,现在三个可确定,但是“7个”是未知的
我写 int [][] str= new int[3][ ];,之后赋值时就报错java.lang.NullPointerException,
应该怎么写??
已解决 展开
3个回答
展开全部
当你写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];
...
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循环的话定义出来的肯定是三个长度一样的一维数组。
展开全部
int x,y;
x=3;y=4;
int[][] str= new int[x][y];
str[1][1]=3;
System.out.println(str[1][1]);
,希望这段代码能给你启示。不确定时,可以用变量表示,或者写在方法里,传值
x=3;y=4;
int[][] str= new int[x][y];
str[1][1]=3;
System.out.println(str[1][1]);
,希望这段代码能给你启示。不确定时,可以用变量表示,或者写在方法里,传值
追问
这样是可以,但是对于第二维不确定,好像不行,因为每次都重新new了,相当于之前的数据不都没了吗
追答
那你那样想你的就是陷入死胡同里了,初始化之前必须赋值,所以说用变量代替。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
之后赋值时 你是怎么赋值的?
更多追问追答
追问
一个一个赋值,两层循环
追答
当然会出现java.lang.NullPointerException,因为nt [][] str= new int[3][ ]你只是初始化了数组,以及分配了它的大小,但是里面没有对象。不知道你理解了没
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询