【发布时间】:2019-10-10 05:38:31
【问题描述】:
我正在尝试在我的代码中使用一个数组,但它的初始化方式会因其他一些因素而有所不同。
char[] d;
char[] c;
if (cIP.length>6&&cIP.length<16)
{
IP=true;
if (cIP[cIP.length-2]=='.')
{
d= new char[1];
d={cIP[cIP.length-1]};
c=new char[cIP.length-2];
for (int i=0;i!=cIP.length-2;i++)
{
c[i]=cIP[i];
}
}
}
当我说我希望数组存在多长时间时,它给了我错误“令牌上的语法错误,删除这些令牌”。它还说数组常量只能在初始化程序中使用..
【问题讨论】:
-
在
d= new char[1]缺少; -
在
d= new char[1]后面加一个分号,把d={cIP[cIP.length-1]};改成d[0] = cIP[cIP.length-1];你可以用System.arraycopy替换那行下面的循环 -
另外
d={cIP[cIP.length-1]};不是有效的数组语法。 -
你可以做到
d = new char[] { cIP[cIP.length-1] };(不需要d=new char[1]))。但是为什么要使用一个数组来存储一个char?在for循环之前也缺少c(c = new char[cIP.length-2])的初始化, -
我正在使用一个数组,因为数组 d 也可以是几个字符,具体取决于点所在的位置(我在下面的其他循环中这样做了,但有同样的问题。
标签: java arrays loops scope declaration