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++;
? ? ? ? ? ?}
? ? }
添加回答
舉報