Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أساسيات StringBuilder

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 44 من 59.

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

أنشئ StringBuilder بنص أولي:

StringBuilder sb = new StringBuilder("Hello");

أضف المزيد من النص باستخدام append():

sb.append(" World");

بعد تنفيذ الكود أعلاه، يحتوي sb على:

Hello World

لنستخدم insert() لإضافة نص في موضع محدد:

StringBuilder sb = new StringBuilder("Java");
sb.append(" is");      // يضيف في النهاية
sb.insert(0, "Hey ");  // يضيف في الموضع 0 (البداية)

بعد تنفيذ الكود أعلاه، يحتوي sb على:

Hey Java is

تحويل StringBuilder إلى String:
عندما تحتاج إلى إرجاع النتيجة أو تخزينها كـ String، استخدم toString():

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");

String result = sb.toString();  // يحول إلى String
System.out.println(result);     // يطبع: Hello World

لماذا نستخدم toString()؟ الدوال التي تُرجع نوع String لا يمكنها إرجاع StringBuilder مباشرة - يجب عليك تحويله أولاً باستخدام toString().

challenge icon

التحدي

سهل

قم بإنشاء طريقة (method) تسمى buildPhrase تأخذ ثلاث وسائط (arguments):

  1. سلسلة نصية (String) (start) لبداية العبارة
  2. سلسلة نصية (String) (middle) للجزء الأوسط
  3. سلسلة نصية (String) (end) للنهاية

يجب أن تقوم الطريقة بما يلي:

  1. إنشاء StringBuilder باستخدام سلسلة البداية (start string)
  2. إضافة مسافة وسلسلة الوسط (middle string)
  3. إضافة مسافة وسلسلة النهاية (end string)
  4. إضافة علامة تعجب في النهاية
  5. إرجاع السلسلة النهائية

يجب أن تكون رسائل الإرجاع (Return messages) كما يلي:

  • إذا كان أي مدخل null: قم بإرجاع "Invalid input"
  • للعملية الناجحة: قم بإرجاع العبارة التي تم بناؤها

ورقة مرجعية

يُستخدم StringBuilder لإنشاء سلاسل نصية قابلة للتعديل، وهو أكثر كفاءة من دمج السلاسل النصية (String concatenation) عند إجراء تعديلات متعددة.

إنشاء StringBuilder بنص ابتدائي:

StringBuilder sb = new StringBuilder("Hello");

إضافة نص في النهاية باستخدام append():

sb.append(" World");

إدراج نص في موضع محدد باستخدام insert():

sb.insert(0, "Hey ");  // يضيف في الموضع 0 (البداية)

تحويل StringBuilder إلى String:

String result = sb.toString();

جرّب بنفسك

import java.util.Scanner;

public class Main {
    public static String buildPhrase(String start, String middle, String end) {
        // اكتب كودك هنا
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String start = scanner.nextLine();
        String middle = scanner.nextLine();
        String end = scanner.nextLine();
        
        if (start.equals("null")) start = null;
        if (middle.equals("null")) middle = null;
        if (end.equals("null")) end = null;
        
        System.out.println(buildPhrase(start, middle, end));
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow