1. 数组为什么定义之后不能改变
肯定要先声明数组长度,不然系统不会为他分配内存空间。Java中的数组是定长的,比如int[]a={};定义出来的数组a长度为0,已经是定长了,之后再给它赋值是不可以的,因为它的长度定义出来之后是不可改变的了。所以在使用数组的时候,一定要注意长度,不能超过这个长度,负责就数组下表越界了。
2. 数组的值可以改变吗
直接给例子 byte a[]= {'a','a','3'}; char s=(char) a[2]; if(Character.isDigit(s)){//Character.isDigit(char s)是Character里面静态方法 判断是否是数字 a[2]='c'; }
3. 数组为什么定义之后不能改变类型
可以改变数组的维数,不可以改变数组的类型ReDim为数组变量重新分配存储空间。
可选项修饰符Preserve当仅更改最后一个维度的大小时,用来保留现有数组中的数据。使用ReDim语句来更改某个已声明数组的一个或多个维度的大小。如果有一个较大的数组,并且您不再需要它的某些元素,ReDim可通过减小数组大小来释放内存。
另一方面,如果代码确定某个数组需要更多元素,ReDim也可以添加它们。ReDim语句仅适用于数组。它在标量(只包含单一值的变量)、集合或结构上是无效的。仅可以在过程级使用ReDim。
这意味着,变量的“声明上下文”必须是过程,而不能是源文件、命名空间、接口、类、结构、模块或块。
例如:有一个Byte数组A,如果我们知道这个数组上限最大只能是4,就用DimDimAAsByte(4)但如果我们不能事先确定它的大小,或者需要在运行时改变它的大小就要用动态数组DimAAsByte()ReDimA(4)'这样改变大小时会清空原来的数据ReDimPreserveA(4)'这样改变大小时会保留原来的数据
4. 什么叫不能更改数组的某一部分
这实际上是因为我们将数组公式添加到单元格区域(多个连续单元格),因此如果要修改,则应在继续之前再次选择单元格区域。具体的解决方法为:
1、输入用于计算的数组公式时,需要更改公式中的单元格地址,但会弹出“无法更改数组的一部分”警告框。
2、不仅不能更改公式,计算结果都是一样的,单击关闭表单不会响应或弹出警告框“无法退出表单”。
3、在这种情况下,首先单击“确定”退出警告框,然后按ESC键退出阵列公式编辑状态,可以保存或关闭表。
5. 数组为什么定义之后不能改变值
以某具体函数样例为例子:function changeURLPar(destiny, par, par_value)
{
var pattern = par+'=([^&]*)';
var replaceText = par+'='+par_value;
if (destiny.match(pattern))
{
var tmp = '/\\'+par+'=[^&]*/';
tmp = destiny.replace(eval(tmp), replaceText);
return (tmp);
}
else
{
if (destiny.match('[\?]'))
{
return destiny+'&'+ replaceText;
}
else
{
return destiny+'?'+replaceText;
}
}
return destiny+'\n'+par+'\n'+par_value;
}
destiny是目标字符串,比如是http://www.huistd.com/?id=3&ttt=3
par是参数名,par_value是参数要更改的值,调用结果如下:
changeURLPar(test, 'id', 99); // http://www.huistd.com/?id=99&ttt=3
changeURLPar(test, 'haha', 33); // http://www.huistd.com/?id=99&ttt=3&haha=33 。
6. 不会改变数组的方法
当你双击进入了数组公式后,即使不对数组公式做任何修改,退出时它都会跳出“不能修改数组的一部分”的提示语。你可以通过以下方法解决:
1;如果原有数组公式没有改变,你可以直接按“CTRL"+"SHIFT"+"ENTER",退出或完成编辑。
2;如果你删除了原有的公式却无法返回时,你可以按““CTRL"+"A",此时会出现个“=”图标在光标所处的表格中,然后你可以在“名称框(在“编辑栏”的左边)”中任意选择一个函数计算(英文的那些),如:SUM;TRANSPOSE;SQRT......选哪个都可以。单击一个后会跳出一个编辑对话框,此时你单击“取消”,就可以退出啦!
- 相关评论
- 我要评论
-