我试图在单击按钮后将数组的内容复制到另一个数组。我希望oldArray在复制到newArray后清除以前的数据。我有这个代码,我迷路了。任何人都可以指导我如何做到这一点?这是我到目前为止所拥有的。
final String [] oldArray;
oldArray = new String[5];
oldArray[0] = "c";
oldArray[1] = "h";
oldArray[2] = "a";
oldArray[3] = "r";
oldArray[4] = "m";
for (i = 0; i < 5; i++);
{
oldarrayOut.setText(oldArray[i]);
}
bOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String[] newArray = new String[5];
for (i = 0; i < 5; i++);
{
newArray[i] = oldArray[i];
newarrayOut.setText(newArray[i]);
}
}
});
如果我的代码出现问题,请随时通知我。非常感谢你!
答案 0 :(得分:1)
只需使用:
oldArray = new String[5];
或
oldArray = null;
所以旧数组不会指向真正的旧数组,而是指向新数组。
第一个更好,如果你知道你将再次使用它,并且你知道阵列的长度。另一个需要被安全处理,因为如果你访问它可能会导致NPE。
答案 1 :(得分:0)
我不确定oldarrayOut和newarrayOut字段在做什么,但它似乎正在推出
oldArray = null;
就可以了。
您似乎正在成功复制数组,只是在完成复制后才初始化oldArray。
答案 2 :(得分:0)
for循环后你有一个分号:
for (i = 0; i < 5; i++);
^-- here
将for循环转换为循环,在每次迭代时不执行任何操作。删除它。
要清除旧数组,只需使用
即可for (i = 0; i < 5; i++) {
newArray[i] = oldArray[i];
oldArray[i] = null;
newarrayOut.setText(newArray[i]);
}
答案 3 :(得分:0)
String[] newArray = (String[]) oldArray.clone();
将数组的内容复制到另一个。 尝试将oldArray复制到newArray。
Arrays.fill( oldArray, null );
删除旧数组的内容