0Pricing
Java Academy · درس

بناء السلاسل باستخدام StringBuilder

الضم الفعّال

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

منشئ سلاسل نصية قابل للتغيير

إن StringBuilder تسلسل قابل للتغيير من المحارف. وعلى خلاف String، يمكنكم تغيير محتواه في مكانه، مما يجعل إنشاء النصوص أكثر كفاءة.

إنشاء StringBuilder

أنشئوا كائنًا باستخدام new StringBuilder() للحصول على منشئ فارغ، أو مرروا نصًا ابتدائيًا لبدء العمل بمحتوى.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        StringBuilder named = new StringBuilder("Hello");
        System.out.println("empty length: " + sb.length());
        System.out.println("named: " + named);
    }
}

إلحاق النص

يضيف الأسلوب append محتوى إلى النهاية. وهو يقبل السلاسل النصية والأرقام والمحارف والقيم المنطقية وغير ذلك.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("Count: ");
        sb.append(5);
        sb.append(' ');
        sb.append(true);
        System.out.println(sb);
    }
}

تسلسل استدعاءات الأساليب

يعيد append المنشئ نفسه، لذلك يمكنكم تسلسل الاستدعاءات بسلاسة ضمن تعبير واحد.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("a").append("b").append("c").append(123);
        System.out.println(sb);
    }
}

البناء داخل حلقة

هذه هي حالة الاستخدام الأساسية. أضيفوا المحتوى داخل حلقة من دون إنشاء كائن جديد في كل مرة، ثم حوّلوا النتيجة مرة واحدة في النهاية.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 10; i++) {
            sb.append(i).append(' ');
        }
        System.out.println(sb.toString().trim());
    }
}

التحويل إلى String

استدعوا toString() للحصول على String عادية غير قابلة للتغيير من المنشئ بعد الانتهاء من تعديله.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("result");
        String finalText = sb.toString();
        System.out.println(finalText.toUpperCase());
    }
}

الدمج باستخدام فاصل

يمكنكم إنشاء قوائم مفصولة بفواصل بإضافة فاصل بين العناصر، مع التعامل مع العنصر الأخير بعناية.

public class Main {
    public static void main(String[] args) {
        String[] names = {"Ann", "Ben", "Cara"};
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < names.length; i++) {
            sb.append(names[i]);
            if (i < names.length - 1) {
                sb.append(", ");
            }
        }
        System.out.println(sb);
    }
}

قراءة الطول

يخبركم length() بعدد المحارف التي يحتويها المنشئ حاليًا. وتتحدث هذه القيمة مع كل عملية إلحاق.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("12345");
        System.out.println("Length: " + sb.length());
    }
}

الوصول إلى المحارف

استخدموا charAt(index) لقراءة محرف واحد حسب موضعه، تمامًا كما تفعلون مع String.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Coddy");
        System.out.println("First: " + sb.charAt(0));
        System.out.println("Last: " + sb.charAt(sb.length() - 1));
    }
}

السعة مقابل الطول

يحتفظ المنشئ بمخزن داخلي، أو سعة، يزداد تلقائيًا. ويمكنكم تمرير سعة ابتدائية لتقليل إعادة التحجيم عندما تعرفون الحجم النهائي.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder(100);
        sb.append("short");
        System.out.println("Length: " + sb.length());
        System.out.println("Capacity at least: " + (sb.capacity() >= 100));
    }
}

منشئ عملي

بتجميع هذه الأفكار، يمكنكم إنشاء سلسلة نصية لتقرير صغير بكفاءة باستخدام عمليات إلحاق متسلسلة وحلقة.

public class Main {
    public static void main(String[] args) {
        int[] sales = {100, 250, 75};
        StringBuilder report = new StringBuilder("Sales Report\n");
        int total = 0;
        for (int i = 0; i < sales.length; i++) {
            report.append("Day ").append(i + 1).append(": ").append(sales[i]).append('\n');
            total += sales[i];
        }
        report.append("Total: ").append(total);
        System.out.println(report);
    }
}

تحقق سريع

لماذا يُعد StringBuilder أكثر كفاءة من عمليات الضم المتكررة باستخدام + داخل حلقة؟

خلاصة

لقد تعلمتم إنشاء السلاسل النصية باستخدام StringBuilder:

  • هو تسلسل محارف قابل للتغيير
  • يضيف append المحتوى ويدعم تسلسل الاستدعاءات
  • مناسب جدًا لإنشاء النصوص داخل الحلقات
  • استدعوا toString() للحصول على String النهائية
  • تساعد السعة الابتدائية على تجنب إعادة التحجيم

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

هل درس «بناء السلاسل باستخدام StringBuilder» مجاني؟

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

ماذا ستتعلم في «بناء السلاسل باستخدام StringBuilder»؟

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

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

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

كم من الوقت يستغرق درس «بناء السلاسل باستخدام StringBuilder»؟

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

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

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

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

  1. لماذا تكون السلاسل غير قابلة للتغيير
  2. بناء السلاسل باستخدام StringBuilder
  3. طرائق StringBuilder
  4. StringBuilder مقابل StringBuffer
← العودة إلى Java Academy