שרשור בסיסי עם +

האופרטור + מחבר שתי מחרוזות למחרוזת חדשה:

String first = "שלום";
String second = " עולם";
String result = first + second;  // "שלום עולם"

שרשור מספרים עם מחרוזות

כשמשרשרים מספר עם מחרוזת, Java ממיר אוטומטית את המספר למחרוזת:

int age = 17;
String msg = "הגיל שלי: " + age;  // "הגיל שלי: 17"

זהירות מסדר פעולות!

האופרטור + עובד משמאל לימין. אם מתחילים ממספרים, הם יחוברו אריתמטית עד שמגיעים למחרוזת:

System.out.println(3 + 4 + " = תשובה");   // "7 = תשובה"
System.out.println("תשובה = " + 3 + 4);   // "תשובה = 34"
System.out.println("תשובה = " + (3 + 4)); // "תשובה = 7"

שרשור בלולאה

דפוס נפוץ – בניית מחרוזת תו-תו או מילה-מילה בתוך לולאה:

// בניית מחרוזת הפוכה
public static String reverse(String s) {
    String result = "";
    for (int i = s.length() - 1; i >= 0; i--) {
        result = result + s.charAt(i);
    }
    return result;
}
// בניית מחרוזת מספרות מספר
public static String digitsString(int num) {
    String result = "";
    while (num > 0) {
        result = (num % 10) + " " + result;
        num = num / 10;
    }
    return result;
}

המרות נפוצות

מ...ל...דוגמה
int → Stringשרשור עם """" + 42 → "42"
char → Stringשרשור עם """" + 'A' → "A"
String → intInteger.parseIntInteger.parseInt("42") → 42
char → int (ערך ASCII)הסבה(int)'A' → 65

דוגמה: ספירת תווים מסוג מסוים

public static int countChar(String s, char ch) {
    int count = 0;
    for (int i = 0; i < s.length(); i++) {
        if (s.charAt(i) == ch)
            count++;
    }
    return count;
}

שאלות נפוצות

מה עדיף – + או concat?

בפועל + ו-concat() עושים אותו דבר. האופרטור + נפוץ ונוח יותר. concat לא מבצע המרה אוטומטית של מספרים.

למה ""+3+4 נותן "34" ולא "7"?

כי ברגע שיש מחרוזת בצד שמאל, כל שאר הפעולות הופכות לשרשור. הוסיפו סוגריים: ""+(3+4) כדי לקבל "7".

מהו StringBuilder?

StringBuilder הוא אובייקט שמאפשר לשנות מחרוזת בצורה יעילה, בלי ליצור אובייקט חדש בכל שרשור. שימושי בלולאות ארוכות, אבל לא נדרש בבגרות בדרך כלל.

צריכים עזרה במחרוזות?

מורים פרטיים ילמדו אתכם הכל על String ב-Java.

מצאו מורה פרטי