יצירת מחרוזת
מחרוזת ב-Java היא אובייקט מטיפוס String. ניתן ליצור אותה בקלות:
String s1 = "שלום עולם"; String s2 = ""; // מחרוזת ריקה String s3 = "abc123";
מחרוזות ב-Java הן immutable – לא ניתן לשנות אותן לאחר יצירה. כל פעולה מחזירה מחרוזת חדשה.
טבלת פעולות חשובות
| פעולה | תיאור | דוגמה | תוצאה |
|---|---|---|---|
| length() | מחזירה את אורך המחרוזת | "hello".length() | 5 |
| charAt(i) | מחזירה את התו במיקום i | "hello".charAt(1) | 'e' |
| substring(from, to) | מחזירה תת-מחרוזת מ-from עד to (לא כולל) | "hello".substring(1, 4) | "ell" |
| substring(from) | מחזירה תת-מחרוזת מ-from עד הסוף | "hello".substring(2) | "llo" |
| indexOf(str) | מחזירה את מיקום ההופעה הראשונה | "hello".indexOf("ll") | 2 |
| equals(str) | האם שתי מחרוזות זהות | "abc".equals("abc") | true |
| compareTo(str) | השוואה לקסיקוגרפית | "a".compareTo("b") | שלילי (<0) |
| toUpperCase() | ממירה לאותיות גדולות | "hello".toUpperCase() | "HELLO" |
| toLowerCase() | ממירה לאותיות קטנות | "HELLO".toLowerCase() | "hello" |
length() – אורך מחרוזת
מחזירה את מספר התווים במחרוזת:
String s = "שלום"; int len = s.length(); // len = 4
charAt(i) – גישה לתו לפי אינדקס
מחזירה את התו (char) במיקום i. האינדקס מתחיל מ-0:
String s = "ABCDE"; char c = s.charAt(0); // c = 'A' char d = s.charAt(4); // d = 'E'
substring – חיתוך מחרוזת
String s = "ABCDEF"; String sub1 = s.substring(2, 5); // "CDE" (מ-2 עד 4, לא כולל 5) String sub2 = s.substring(3); // "DEF" (מ-3 עד הסוף)
indexOf – חיפוש במחרוזת
String s = "hello world"; int pos = s.indexOf("world"); // pos = 6 int notFound = s.indexOf("xyz"); // notFound = -1
אם המחרוזת לא נמצאת – מוחזר -1.
equals ו-compareTo – השוואת מחרוזות
String a = "abc"; String b = "abc"; a.equals(b) // true – תוכן זהה a.compareTo(b) // 0 – שוות לקסיקוגרפית "a".compareTo("b") // שלילי – "a" לפני "b" "b".compareTo("a") // חיובי – "b" אחרי "a"
סריקת כל התווים במחרוזת
String s = "Hello"; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); System.out.println(c); }
שאלות נפוצות
מה ההבדל בין equals ל-== ?
== משווה הפניות – בודק אם שני המשתנים מצביעים לאותו אובייקט. equals משווה תוכן. תמיד השתמשו ב-equals להשוואת מחרוזות!
האם אפשר לשנות תו בודד במחרוזת?
לא ישירות. מחרוזות הן immutable. צריך לבנות מחרוזת חדשה, למשל באמצעות substring ושרשור.
מה ההבדל בין length() ל-length?
length() עם סוגריים – זו פעולה (method) של String. length בלי סוגריים – זה שדה (field) של מערך. אל תתבלבלו ביניהם!