שרשור בסיסי עם +
האופרטור + מחבר שתי מחרוזות למחרוזת חדשה:
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 → int | Integer.parseInt | Integer.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 הוא אובייקט שמאפשר לשנות מחרוזת בצורה יעילה, בלי ליצור אובייקט חדש בכל שרשור. שימושי בלולאות ארוכות, אבל לא נדרש בבגרות בדרך כלל.