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

مقدمة إلى StringBuffer

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

StringBuffer يشبه StringBuilder ولكنه آمن للخيوط (آمن للعمليات المتعددة في نفس الوقت). يُستخدم لإنشاء سلاسل نصية قابلة للتغيير (قابلة للتعديل).

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

StringBuffer sb = new StringBuffer("Hello");

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

sb.append(" World");

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

Hello World

تعديل النص باستخدام insert() و replace():

StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi ");       // يضيف في البداية
sb.replace(0, 2, "Hey");   // يستبدل "Hi" بـ "Hey"

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

Hey Java

challenge icon

التحدي

سهل

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

  1. سلسلة نصية (String) (text) لتعديلها
  2. سلسلة نصية (String) (target) للبحث عنها
  3. سلسلة نصية (String) (replacement) لاستبدال target بها

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

  1. إنشاء StringBuffer بالنص المدخل
  2. استبدال أول ظهور لـ target بـ replacement
  3. إضافة علامة تعجب في النهاية
  4. إرجاع السلسلة النصية النهائية

يجب أن تكون رسائل الإرجاع:

  • إذا كان أي مدخل null: قم بإرجاع "Invalid input"
  • إذا لم يتم العثور على target: قم بإرجاع النص الأصلي مع علامة تعجب
  • للعملية الناجحة: قم بإرجاع النص المعدل

ورقة مرجعية

StringBuffer آمن للخيوط (thread-safe) ويُستخدم لإنشاء سلاسل نصية قابلة للتعديل.

إنشاء StringBuffer بنص أولي:

StringBuffer sb = new StringBuffer("Hello");

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

sb.append(" World");

إدراج نص في موضع محدد:

sb.insert(0, "Hi ");  // يضيف في البداية

استبدال النص باستخدام replace():

sb.replace(0, 2, "Hey");  // يستبدل الأحرف من الفهرس 0 إلى 2

جرّب بنفسك

import java.util.Scanner;

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

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

جميع دروس Logic & Flow