English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

您如何使用Java在整数数组中将零与非零分开?

لإزالة الصفر من المجموعة غير الصفرية وإسقاطها إلى النهاية في مجموعة عددية، يجب توزيع جميع العناصر غير الصفرية بشكل ترتيبي من البداية، ثم ملء المتبقي من النهاية إلى البداية بالصفر.

مثال

سيقوم البرنامج الجافا التالي بإسقاط جميع الصفر إلى النهاية من داخل المجموعة.

إدراج java.util.Arrays;
إدراج java.util.Scanner;
public class ZerosFromNonZeros {}}
   public static void main(String args[]){
      //قراءة العدد من المستخدم
      Scanner sc = new Scanner(System.in);
      System.out.println("ادخل حجم العدد الذي سيتم إنشاؤه: ");
      int size = sc.nextInt();
      int[] myArray = new int[size];
      System.out.println("ادخل عناصر العدد: ");
      for(int i=0; i<size; i++){
         myArray[i] = sc.nextInt();
      {}
      System.out.println("العدد المكون هو: " + Arrays.toString(myArray));
      System.out.println("العدد الناتج: ");
      int pos = 0;
      for(int i=0; i<myArray.length; i++){
         if(myArray[i]!=0){
            myArray[pos]=myArray[i];
            pos++;
         {}
      {}
      while(pos<myArray.length) {
         myArray[pos] = 0;
         pos++;
      {}
      System.out.println("العدد المكون هو: " + Arrays.toString(myArray));
   {}
{}

نتيجة الإخراج

ادخل حجم العدد الذي سيتم إنشاؤه:
8
ادخل عناصر العدد:
14
0
56
0
12
47
0
0
العدد المكون هو: [14, 0, 56, 0, 12, 47, 0, 0]
العدد الناتج:
المجموعة المُنشأة هي: [14, 56, 12, 47, 0, 0, 0, 0]

يُوضع الصفر في البداية بنفس الطريقة، ويتم استبدال العناصر من النهاية إلى البداية، ثم يُملأ المتبقي بالصفر.

يُعيد ترتيب المجموعة من خلال توزيع جميع العناصر غير الصفرية بشكل ترتيبي من البداية، ثم يملأ المتبقي من النهاية إلى البداية بالصفر.

مثال

سيقوم البرنامج الجافا التالي بإسقاط جميع الصفر إلى البداية من داخل المجموعة.

إدراج java.util.Arrays;
إدراج java.util.Scanner;
public class ZerosFromNonZeros {}}
   public static void main(String args[]){
      //قراءة العدد من المستخدم
      Scanner sc = new Scanner(System.in);
      System.out.println("ادخل حجم العدد الذي سيتم إنشاؤه: ");
      int size = sc.nextInt();
      int[] myArray = new int[size];
      System.out.println("ادخل عناصر العدد: ");
      for(int i=0; i<size; i++){
         myArray[i] = sc.nextInt();
      {}
      System.out.println("العدد المكون هو: " + Arrays.toString(myArray));
      System.out.println("العدد الناتج: ");
      int pos = myArray.length-1;
      for(int i = myArray.length-1; i>=0; i--){
         if(myArray[i]!=0){
            myArray[pos]=myArray[i];
            pos--;
         {}
      {}
      while(pos>=0) {
         myArray[pos] = 0;
         pos--;
      {}
      System.out.println("العدد المكون هو: " + Arrays.toString(myArray));
   {}
{}

نتيجة الإخراج

ادخل حجم العدد الذي سيتم إنشاؤه:
8
ادخل عناصر العدد:
14
0
56
0
12
47
0
0
العدد المكون هو: [14, 0, 56, 0, 12, 47, 0, 0]
العدد الناتج:
العدد المكون للعدد هو: [0, 0, 0, 0, 14, 56, 12, 47]