أساسيات 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().
التحدي
سهلقم بإنشاء طريقة (method) تسمى buildPhrase تأخذ ثلاث وسائط (arguments):
- سلسلة نصية (String) (
start) لبداية العبارة - سلسلة نصية (String) (
middle) للجزء الأوسط - سلسلة نصية (String) (
end) للنهاية
يجب أن تقوم الطريقة بما يلي:
- إنشاء StringBuilder باستخدام سلسلة البداية (start string)
- إضافة مسافة وسلسلة الوسط (middle string)
- إضافة مسافة وسلسلة النهاية (end string)
- إضافة علامة تعجب في النهاية
- إرجاع السلسلة النهائية
يجب أن تكون رسائل الإرجاع (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));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap5HashSet الجزء الثاني
رياضيات - اتحاد الـ HashSetsرياضيات - تقاطع الـ HashSetرياضيات - فرق المجموعاترياضيات - الفرق المتناظرالمجموعات الجزئية والشاملةالتكرار عبر المجموعات8عمليات السلاسل النصية المتقدمة
أساسيات StringBuilderمقدمة إلى StringBufferأساسيات Regular Expressionsمطابقة الأنماط باستخدام RegexString Tokenizerتنسيق النصوص المتقدم3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم