黑马程序员技术交流社区
标题:
java把一个数组中的非零元素放入到一个新的数组中的问题
[打印本页]
作者:
liyuehua
时间:
2015-3-25 21:57
标题:
java把一个数组中的非零元素放入到一个新的数组中的问题
以下是我的代码,想知道还有哪些更简单的方法?
/**
* 定义一个数组,取出里边的0,把剩下的元素放进一个新的数组,要求新数组中的元素先后顺序与原数组的一致,并且元素类型不变。
*
*
*/
public class Test13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[]a={9,2,7,0,5,6,5,7,0,0,8,5};
int c=0;
for(int i=0;i<a.length-1;++i){
if(a==0){
//判断a之后的数是否为零
for(int j=i+1;j<a.length-1;j++){
//当为零的元素等于它后边的元素时,那个用来代替零的元素后边的元素依次前移
if(a[j]!=0){
a=a[j];
for(int n=j;n<a.length-1;n++){
a[n]=a[n+1];
}
a[a.length-1]=0;
break;
}
}
c++;
}
}
int [] b=new int[a.length-(c+1)/2];
System.arraycopy(a, 0, b, 0, a.length-(c+1)/2);
for(int n:b){
System.out.print(n+",");
}
}
}
作者:
圣光忏悔
时间:
2015-3-25 23:45
int[] x = { 1, 5, 2, 5, 2, 0, 5, 2, 5, 2, 0, 0, 5, 3, 5, 8 };
// 定义字符串,接收数组所有数据
String str = "";
// 便利数组
for (int x1 : x) {
str = str.concat(String.valueOf(x1));
}
// 首先去零
String str2 = str.replaceAll("0", "");
// 转为数组
String[] st = str2.split("");
// 数组赋值给int 数组
int[] y = new int[st.length];
for (int z = 0; z < st.length; z++) {
y[z] = Integer.valueOf(st[z]);
}
复制代码
look
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2