עבור לתוכן

שאלת נוב בג'אווה

Featured Replies

פורסם

איך ניתן לבצע החלפת תוכן של מחרוזות בפונקציה?

נניח שיש לי רשימה שמכילה מחרוזות, ואני שולח אותה לפונקציה אחרת כדי שתשנה חלק מהמחרוזות לפי התוכן שלהן.

לא ראיתי שיש השפעה על תוכן הרשימה בפונקציה הקוראת לפונקציה הזו בשום דרך.

פורסם

שני דברים:

א. כל אובייקט מועבר by reference. זה אומר שכשפונקציה א' מעבירה רשימה לפונקציה ב', אז לשתי הפונקציות יש את אותה רשימה פיזית, ואם תשנה את הרשימה בפונקציה ב' (לדוגמה באמצעות המתודה set) אז תבחין בשינוי גם בפונקציה א'.

ב. מחרוזות בג'אווה הן immutable, דהיינו לא ניתן לשנות אותן. אפשר כמובן להחליף אותן לחלוטין (כלומר, אם יש רשימה של מחרוזות אז אפשר לדרוס על איבר ברשימה עם מחרוזת חדשה).

אם עדיין לא ברור לך, תעלה לפה דוגמת קוד עם שאלה יותר ממוקדת.

פורסם
  • מחבר

עכשיו זה ברור לי.

חשבתי שיש לי אפשרות לשנות מחרוזות בצורה דינאמית.

זה אומר שאני צריך להכניס את המחרוזת לאובייקט אחר ולשמור אותו ברשימה ולשנות את המחרוזת הפנימית.

פורסם

לא הבנתי בדיוק את המשפט האחרון שלך, אבל לא משנה.

אם אתה רוצה מחרוזת שאפשר לשנות אז יש מחלקה בשם StringBuffer.

פורסם
  • מחבר

תודה שחזרת בדיוק על מה שאמרו קודם בלי לחדש כלום.

שנית, אני מכיר קצת ג'אווה ואין נעשה בה מעבר פרמטרים. מה שאמרתי הוא שהעברתי רשימה לפונקציה ולא מחרוזת וניסיתי לשנות את האיברים ברשימה.

הסיבה שזה לא עבד היא נושא ה-immutable ששניצל דיבר עליו אותו לא הכרתי.

מעבר ל-stringBuffer פתר את הבעיה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים