Menu
CoddyTech

مقدمة إلى StringBuffer

جزء من قسم المنطق وتدفق التنفيذ في رحلة 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

للعثور على موضع بداية نص ما، استخدم indexOf(). يعيد موضع أول تطابق، أو -1 إذا لم يكن النص موجودًا:

StringBuffer sb = new StringBuffer("Hey Java");
int pos = sb.indexOf("Java");   // 4
int none = sb.indexOf("Python"); // -1
challenge icon

التحدي

سهل

أنشئ طريقة باسم modifyText تأخذ ثلاث وسيطات:

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

ينبغي للطريقة أن:

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

يجب أن تكون الرسائل المُعادة كما يلي:

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

جرّب بنفسك

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اختبر نفسك

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

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Java عبر الإنترنت