/*
* 2.现在有如下一个数组:
*int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
*要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为:
*int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5};
* */
public class test3 { public static void main(String[] args) {
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int count =0;
//统计0的个数
for(int i=0;i<oldArr.length;i++){
if(oldArr[i] ==0){
count++;
}
}
//定义新数组长度
int [] newArr = new int[oldArr.length-count];
//开始把非0的数存入新数组
for(int i =0; i <oldArr.length; i++){
if(oldArr[i] == 0){
continue;
}else{
newArr[i] = oldArr[i];
System.out.println(newArr[i]);
}
}
}
}
解决方案 »
- 烦恼的重复提交问题
- 求 Spring Security 的源代码
- 有谁知道这是个什么错误?
- struts中读xml文件时对xml文件有大小限制?
- 请教高手 Struts+Spring+Hibernate 的上传下载
- EJB 调用的问题
- spring配置DataSource使用jndi,总是不成功。 With Weblogic
- 高分求解决SQL连接JDBC 后的显示内容简单问题
- 刚刚开始学习J2EE,听说看看petstore,不错,于是在SUN上下了一个,可不知如何打开?
- 论一个java程序员需要什么样的功底,才能看懂源码?
- Redis+Keepalived 实现交互缓存 Redis主从交换脚本出错.
- 如何将ASCII编码RSA公钥转换为publickey对象``?
int count = 0;
// 统计0的个数
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] == 0) {
count++;
}
} // 定义新数组长度
int[] newArr = new int[oldArr.length - count];
// 开始把非0的数存入新数组
int j = 0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] == 0) {
continue;
} else {
newArr[j] = oldArr[i];
System.out.println(newArr[j]);
j++;
}
}
public class Test3
{
public static void main(String[] args)
{
int oldArr[] =
{
1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5
};
int count = 0;
// 统计0的个数
for (int i = 0; i < oldArr.length; i++)
{
if (oldArr[i] == 0)
{
count++;
}
}
// 定义新数组长度
int[] newArr = new int[oldArr.length - count];
// 开始把非0的数存入新数组
//这里用oldArr.length作为for循环遍历的条件,而newArr中显然没有这么多元素,当然会报错了。
//增加一个变量j,赋值和打印的时候用它就OK了。
int j = 0;
for (int i = 0; i < oldArr.length; i++)
{
if (oldArr[i] == 0)
{
continue;
}
else
{
newArr[j] = oldArr[i];
System.out.println(newArr[j]);
j++;
}
}
}
}
好好看看这句代码。