Menu
Coddy logo textTech

מבוא ל-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

challenge icon

אתגר

קל

צרו מתודה בשם modifyText שמקבלת שלושה ארגומנטים:

  1. מחרוזת (text) לשינוי
  2. מחרוזת (target) לחיפוש
  3. מחרוזת (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 אונליין