מבוא ל-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אתגר
קלצור מתודה בשם 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מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכים5HashSet חלק 2
מתמטיקה - איחוד של HashSetsמתמטיקה - חיתוך של HashSetמתמטיקה - הפרש קבוצותמתמטיקה - הפרש סימטריתת־קבוצות וקבוצות־עלמעבר על קבוצות8פעולות מתקדמות על מחרוזות
יסודות StringBuilderמבוא ל-StringBufferיסודות ביטויים רגולרייםהתאמת תבניות באמצעות RegexStringTokenizerעיצוב מחרוזות מתקדםתרגלו בעצמכם: קומפיילר Java אונליין