5 回答
TA貢獻1條經驗 獲得超1個贊
package?com.bjlemon.task.day08;
import?java.util.Arrays;
/**
?*?@author?利他
?*?@version?1.0
?*?@date?2018/10/13?16:42
?*/
public?class?test?{
????public?static?void?main(String[]?args)?{
????????//定義數組
????????int?oldArr[]?=?{1,?3,?4,?5,?0,?0,?6,?6,?0,?5,?4,?7,?6,?7,?0,?5};
????????//從小到大排序,0會排在最前面
????????Arrays.sort(oldArr);
????????//統計原數組中第一個非0元素的下標
????????int?index?=?0;
????????//統計原數組中0的個數
????????int?zeros?=?0;
????????//遍歷數組
????????for?(int?i?=?0;?i?<?oldArr.length;?i++)?{
????????????//如果當前元素等于0,計數加一,并跳出本次循環,否則第一個非0的元素為本次循環的次數,并跳出這個循環
????????????if?(oldArr[i]?==?0)?{
????????????????zeros++;
????????????????continue;
????????????}?else?{
????????????????index?=?i;
????????????????break;
????????????}
????????}
????????//定義新的數組,大小為舊數組的長度減去元素為0的個數
????????int[]?newArr?=?new?int[oldArr.length?-?zeros];
????????/*
????????public?static?void?arraycopy(
????????????????????????????????????Object?src,??//源數組
????????????????????????????????????int?srcPos,??//源數組的起始位置
????????????????????????????????????Object?dest,?//目標數組
????????????????????????????????????int?destPos,?//目標數組的起始位置
????????????????????????????????????int?length???//復制長度
???????????????????????????????????)
????????*/
????????//調用System.arraycopy()方法將原數組數組中的非0數據拷貝到新數組中
????????System.arraycopy(oldArr,?index,?newArr,?0,?newArr.length);
????????//循環輸出newArr數組中的每個元素
????????for?(int?i?:?newArr)?{
????????????System.out.print(i?+?"?");
????????}
????}
}TA貢獻1條經驗 獲得超1個贊
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?newarr[]=new?int[oldarr.length];
int?j=0;
for(int?i=0;i<oldarr.length;i++){
if(oldarr[i]!=0){
newarr[j]=oldarr[i];
j++;
}
}
for(int?k=0;k<j;k++){
System.out.print(newarr[k]+"?");
}
}TA貢獻317條經驗 獲得超240個贊
public?static?void?main(String[]?args)?{
?int?oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
?Arrays.sort(oldArr);?//從小到大排序,0在最前面
?int?index?=?0;//原數組中第一個非0元素的下標
?int?zeros?=?0;//原數組中0的個數
?for(int?i?=?0;?i?<?oldArr.length;?i++)?{
?if(oldArr[i]?==?0)?{
?zeros++;
?continue;
?}?else?{
?index?=?i;
?break;
?}
?}
?int[]?newArr?=?new?int[oldArr.length?-?zeros];
?System.arraycopy(oldArr,?index,?newArr,?0,?newArr.length);//調用系統方法將原數組數組中的非0數據拷貝到新數組中
?for(int?i?:?newArr)?{
?System.out.print(i?+?"?");
?}
}TA貢獻4條經驗 獲得超0個贊
import java.util.Arrays;
public class Demo4_6_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[]=new int[oldArr.length];
int k=0;
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[k]=oldArr[i];
k++;
}
}
System.out.println(Arrays.toString(newArr));
}
}
請問我這個程序輸出怎么是1,3,4,5,6,6,5,4,7,6,7,5,0,0,0,0,啊
TA貢獻13條經驗 獲得超2個贊
int o[]={1,3,4,5,0,0,6,6};
? ? int n[]=new int[o.length];
? ? int k=0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //用于計算n[]下標的變量
? ? for(int i=0;i<o.length;i++){
? ? ? ? if(o[i]!=0){ ? ? ? ? ? ? ? ? ? ? ? ? ? //判斷原數組是否為0,不為0把原數據賦值給新數組
? ? ? ? ? n[k]=o[i];
? ? ? ? ? System.out.print(n[k]+"\t"); ? ? ? ? ?
? ? ? ? ? k++;
? ? ? ? ? ?}
? ? }
添加回答
舉報
