0Pricing
Java Academy · درس

عدّ الأحرف وتصفيتها

تطبيقات عملية على char

عدّ الأحرف وتصفيتها درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.

العد باستخدام حلقة

لعدّ المحارف، احتفظوا بمتغير عدّاد وأضيفوا 1 كلما تحقق شرط ما.

ابدؤوا العداد عند 0، وكرروا على كل char، وزيدوه عندما يجتاز المحرف الاختبار الذي وضعتموه.

int count = 0;
for (char c : "hello".toCharArray()) {
    count++;
}

عدّ حروف العلة

نعدّ حروف العلة هنا من خلال فحص كل حرف ومقارنته بمجموعة حروف العلة.

نحوّل الحرف أولًا إلى أحرف صغيرة، حتى يُحتسب كل من 'A' و'a' بالطريقة نفسها.

public class Main {
    public static void main(String[] args) {
        String text = "Java Rocks";
        int vowels = 0;
        for (char c : text.toCharArray()) {
            char low = Character.toLowerCase(c);
            if (low == 'a' || low == 'e' || low == 'i' || low == 'o' || low == 'u') {
                vowels++;
            }
        }
        System.out.println(vowels);
    }
}

عدّ الأرقام

لعدّ عدد الأرقام الموجودة في String، استخدم Character.isDigit داخل الحلقة.

يتجاهل هذا الحروف والرموز تلقائيًا، لذلك لا يزداد العداد إلا عند العثور على أرقام.

public class Main {
    public static void main(String[] args) {
        String text = "abc123x9";
        int digits = 0;
        for (char c : text.toCharArray()) {
            if (Character.isDigit(c)) digits++;
        }
        System.out.println(digits);
    }
}

عدّ الحروف

استبدل ذلك بـ Character.isLetter لعدّ الأحرف الأبجدية بدلًا من ذلك.

يبقى الهيكل كما هو: حلقة، ثم اختبار، ثم زيادة العداد. يتغير الشرط فقط.

public class Main {
    public static void main(String[] args) {
        String text = "a1 b2 c3";
        int letters = 0;
        for (char c : text.toCharArray()) {
            if (Character.isLetter(c)) letters++;
        }
        System.out.println(letters);
    }
}

عدّ حرف معيّن

لعدّ حرف معيّن، قارن كل حرف باستخدام ==.

يعدّ هذا عدد مرات ظهور الحرف 'a' في النص.

public class Main {
    public static void main(String[] args) {
        String text = "banana";
        int aCount = 0;
        for (char c : text.toCharArray()) {
            if (c == 'a') aCount++;
        }
        System.out.println(aCount);
    }
}

تصفية الأحرف

تعني التصفية إنشاء String جديد يحتفظ بالأحرف التي تريدها فقط.

نحتفظ هنا بالحروف والأرقام، ونتخلّص من المسافات وعلامات الترقيم، وذلك بإلحاقها بـ String الناتج.

public class Main {
    public static void main(String[] args) {
        String text = "a-b 1!2";
        String clean = "";
        for (char c : text.toCharArray()) {
            if (Character.isLetterOrDigit(c)) clean += c;
        }
        System.out.println(clean);
    }
}

استخدام StringBuilder

إنشاء String باستخدام += داخل حلقة طويلة يكون بطيئًا، لأن كل خطوة تنشئ String جديدًا.

يكون StringBuilder أسرع: ألحِق الأحرف، ثم استدعِ toString() في النهاية.

public class Main {
    public static void main(String[] args) {
        String text = "H e l l o";
        StringBuilder sb = new StringBuilder();
        for (char c : text.toCharArray()) {
            if (!Character.isWhitespace(c)) sb.append(c);
        }
        System.out.println(sb.toString());
    }
}

إزالة المسافات البيضاء

تزيل التصفية الشائعة المسافات وعلامات الجدولة والأسطر الجديدة باستخدام Character.isWhitespace.

احتفظ بكل حرف لا يُعدّ من المسافات البيضاء لضمّ النص إلى بعضه.

public class Main {
    public static void main(String[] args) {
        String text = " J a v a ";
        StringBuilder sb = new StringBuilder();
        for (char c : text.toCharArray()) {
            if (!Character.isWhitespace(c)) sb.append(c);
        }
        System.out.println(sb.toString());
    }
}

التصفية ثم العدّ

يمكنك الجمع بين الفكرتين: صفِّ String ليصبح نظيفًا، ثم احسب طوله.

نعدّ هنا الأحرف فقط من خلال التصفية وقراءة length().

public class Main {
    public static void main(String[] args) {
        String text = "a1b2c3";
        StringBuilder sb = new StringBuilder();
        for (char c : text.toCharArray()) {
            if (Character.isLetter(c)) sb.append(c);
        }
        System.out.println(sb.length());
    }
}

عدّ الأحرف الكبيرة والصغيرة

يمكنك تتبّع عدة عدادات في الوقت نفسه. نعدّ هنا الأحرف الكبيرة والصغيرة بشكل منفصل.

يمر كل حرف باختبارين مستقلين، ويزداد العداد المطابق له.

public class Main {
    public static void main(String[] args) {
        String text = "JavaCode";
        int upper = 0, lower = 0;
        for (char c : text.toCharArray()) {
            if (Character.isUpperCase(c)) upper++;
            if (Character.isLowerCase(c)) lower++;
        }
        System.out.println(upper + " " + lower);
    }
}

أهمية التصفية

العدّ والتصفية مهمتان في المهام اليومية، مثل التحقق من كلمات المرور، وتنظيف إدخال المستخدم، أو إحصاء أنواع الأحرف.

يتعامل نمط الحلقة والاختبار نفسه مع هذه المهام كلها. غيّر الشرط فقط ليتناسب مع هدفك.

if (Character.isDigit(c)) {
    count++;
}

تحقق سريع

اختبر مدى فهمك لعدّ الأحرف وتصفيتها.

مراجعة

يستخدم العدّاد عدادًا تزيده عندما ينجح حرف في اختبار مثل isDigit أو ==.

تنشئ التصفية String جديدًا يحتفظ بالأحرف المطلوبة فقط، ويُفضّل استخدام StringBuilder للسرعة. غيّر الشرط لعدّ حروف العلة أو الحروف أو الأرقام، أو لإزالة المسافات البيضاء.

الأسئلة الشائعة

هل درس «عدّ الأحرف وتصفيتها» مجاني؟

نعم — نص درس «عدّ الأحرف وتصفيتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.

ماذا ستتعلم في «عدّ الأحرف وتصفيتها»؟

تطبيقات عملية على char تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «عدّ الأحرف وتصفيتها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. النوع البدائي char
  2. الأساليب المساعدة للأحرف
  3. التكرار على الأحرف
  4. عدّ الأحرف وتصفيتها
← العودة إلى Java Academy