مقدمة إلى StringBuffer
جزء من قسم المنطق وتدفق التنفيذ في رحلة Java على Coddy. الدرس 45 من 59.
يُعد StringBuffer مشابهاً لـ StringBuilder ولكنه آمن للخيوط (thread-safe) (آمن للعمليات المتعددة في نفس الوقت). ويُستخدم لإنشاء سلاسل نصية قابلة للتعديل (mutable).
أنشئ 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
التحدي
سهلقم بإنشاء طريقة (method) تسمى modifyText تأخذ ثلاث وسائط:
- سلسلة نصية (
text) لتعديلها - سلسلة نصية (
target) للبحث عنها - سلسلة نصية (
replacement) لاستبدال target بها
يجب أن تقوم الطريقة بـ:
- إنشاء StringBuffer بالنص المدخل
- استبدال أول ظهور لـ target بـ replacement
- إضافة علامة تعجب في النهاية
- إرجاع السلسلة النصية النهائية
يجب أن تكون رسائل الإرجاع:
- إذا كان أي مدخل 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));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap5HashSet الجزء الثاني
رياضيات - اتحاد الـ HashSetsرياضيات - تقاطع الـ HashSetرياضيات - فرق المجموعاترياضيات - الفرق المتناظرالمجموعات الجزئية والشاملةالتكرار عبر المجموعات8عمليات السلاسل النصية المتقدمة
أساسيات StringBuilderمقدمة إلى StringBufferأساسيات Regular Expressionsمطابقة الأنماط باستخدام RegexString Tokenizerتنسيق النصوص المتقدم3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكمتدرّب بنفسك: مترجم Java عبر الإنترنت