מחרוזות הן אוסף של תווים מחוברים (תו - כינוי לאות או סימן בודד, כלומר - משתנה מסוג char). ב-Java ניתן להשתמש במחרוזות בקלות באמצעות המחלקה String. מחלקה זו אין צורך לייבא, ועל אובייקטים מסוג String (שימו לב - אות גדולה בתחילת המילה String!) ניתן להכריז כמו על משתנים בסיסיים, כלומר בצורה String s; או String s = "Bla-Bla-Bla"; הבדל חשוב בין מחרוזות (String) לתווים (char) הוא אופן הסימון: תווים מקיפים בסימן גרש ('c'), אך מחרוזות מקיפים בסימן מירכאות ("c").

עבודה עם מחרוזות

עריכה

Java מאפשרת גמישות גבוהה בעבודה עם המחרוזות:

  • ניתן לחבר מספר מחרוזות יחד באמצעות הסימן '+'. לדוגמה: "This "+"Is "+"a "+"String" היא מחרוזת חוקית ושקולה בדיוק ל-"This Is a String".
  • באותה צורה, ניתן לחבר מחרוזת עם גורם נוסף שאינו בהכרח מחרוזת, אך ניתן לתרגום למחרוזת, כמו לדוגמה משתנים בסיסיים. את עבודת ההמרה מבצעת עבורנו Java בצורה אוטומטית. כך, לדוגמה, אם מוגדר משתנה כלשהו מסוג int בשם num, המחרוזת הבאה היא חוקית: "My number is "+num.
גמישות זו נוחה מאוד, בשילוב עם פונקצייות הפלט. אם נרצה לכתוב מחרוזת ומייד אחריה מספר - לא נצטרך לכתוב שתי פקודות שונות, אלא נוכל לכתוב זאת בשורה אחת: System.out.println("My number is "+num);

גם ביטויים מורכבים הרבה יותר יתקבלו, כל עוד הסוגריים והגרשיים יהיו ממוקמים בכל מקום בו הם נחוצים.
  • לא ניתן להשוות שתי מחרוזות באמצעות הסימן "==", אלא רק באמצעות הפונקציה equals (ראו למטה). המהדר יקבל השוואה זו כחוקית, אך במקום להשוות את תוכן המחרוזות, הוא ישווה את מיקום האובייקט בזיכרון ובכך יביא לתוצאות לא רצויות.
  • בתוך המחרוזת ניתן להשתמש במספר תווים מיוחדים. הסימן "n\" (סלאש שמאלי-n, באות קטנה) יגרום למעבר שורה. הסימן "t\" מסמן טאב, כלומר - קפיצה של כמה רווחים בבת אחת, והסימן "r\" יחזיר את הסמן לתחילת השורה. כדי לכתוב את הסימן \ עצמו נצטרך לכתוב "\\", ובשביל לכתוב גרש או גרשיים נצטרך, בהתאמה, לכתוב "'\" ו-""\". לדוגמה: System.out.print("Hello\nCruel\nWorld\n");

יביא להדפסת הפלט הבא:

Hello
Cruel
World


קיימים מספר סימנים נוספים, שימושיים פחות, שלא יפורטו כאן.

כלים

עריכה

לרשותנו עומדים כלים רבים בעבודה עם מחרוזות. נעבור כאן על החשובים שביניהם, כאשר בכל הדוגמאות - str הוא מחרוזת כלשהי.

  • כדי למצוא את אורך המחרוזת נשתמש בפונקציה length, המחזירה את אורך המחרוזת בצורת מספר מטיפוס int. שימוש: str.length();.
  • כדי לדעת איזה תו נמצא במקום כלשהו במחרוזת, נשתמש בפונקציה charAt, המחזירה את התו שנמצא במקום הרצוי. המיקום של האות הראשונה הוא 0 (ולא 1!), ושל האות האחרונה - אורך המחרוזת פחות 1 (כלומר - str.length() - 1). הפונקציה מחזירה משתנה מטיפוס char. שימוש: str.charAt(index);, כאשר index הוא משתנה מטיפוס int המציין את המיקום הרצוי.
  • כדי להשוות בין שני משתנים מטיפוס String לא ניתן להשתמש ב-"==", וזאת כי מדובר באובייקטים ולא במשתנים בסיסיים. כדי להשוות נזדקק לפונקציה equals, המחזירה משתנה מטיפוס boolean, שערכו "אמת" אם המחרוזות שוות, ו"שקר" אם לא. שימוש: str.equals(str2);, כאשר str2 היא מחרוזת אליה אנו רוצים להשוות את str.
  • כדי לקבל חלק ממחרוזת נשתמש בפונקציה substring, שמחזירה משתנה מטיפוס String המכיל את הקטע הרצוי. ניתן להשתמש בפונקציה זו בשני אופנים: אם מכניסים שני משתנים מטיפוס int, הפונקציה תחזיר את המחרוזת שנמצאת בין המיקום הראשון לשני. אם מכניסים משתנה אחד, מקבלים את המחרוזת החל ממיקום זה ועד הסוף. שימוש: str.substring(index); או str.substring(begin, end);
  • קיימות עוד פונקציות רבות ומועילות. ניתן לראותן בצירוף הסברים באתר של חברת אורקל.


הפרק הקודם:
פלט וקלט
מחרוזות
תרגילים
הפרק הבא:
תנאים ולולאות