אַחֵר

Mac 'אינדקס המחרוזת מחוץ לטווח: 0' ... מישהו יכול להגיד לי מה לא בסדר כאן? (ג'אווה)

צ'ייס ר

פוסטר מקורי
8 במאי 2008
PDX
  • 2 ביוני 2009
זה עתה סיימתי לכתוב את התוכנית הזו לשיעור ג'אווה שלי. זו תוכנה פשוטה שמחשבת כמה עולה התקנת גדר. בסוף הוא שואל 'האם תרצה לעשות הערכה נוספת (Y/N)', והמשתמש אמור לבחור כן או לא. עם זאת, לאחר שאסיים להפעיל את שלי, לא אקבל את האפשרות הזו, היא רק אומרת:

חשב הערכה נוספת (Y/N): חריגה בשרשור 'ראשי' java.lang.StringIndexOutOfBoundsException: אינדקס מחרוזת מחוץ לטווח: 0
ב-java.lang.String.charAt (String.java:558)
ב-Test1.main(Test1.java:73)

למה זה עושה את זה!!!

הנה התוכנית אגב:

קוד: |_+_|

ליטלודי914

9 ביוני 2004


רוצ'סטר, ניו יורק
  • 2 ביוני 2009
וואו, זה מסובך. הבאתי את זה לעבוד על ידי שינוי ה-'read.nextLine()' האחרון שלך ל-'read.next()' בלבד, אבל אני אסתכל קצת יותר מקרוב כדי לראות מדוע זה לא עובד בדרך הראשונה.

לַעֲרוֹך: נראה שיש לזה קשר לשיטת nextLine() שמקדמת את המצביע מעבר לקו הנוכחי. אני לא כל כך מבין בזה בעצמי, אבל הקישורים האלה עשויים לעזור להבהיר מעט בלבול:

סורק API
פוסט קשור בפורום

HiRez

6 בינואר 2004
מערב ארה'ב
  • 2 ביוני 2009
אני הולך לנחש את זה שלך קודם שיחות קריאה עוזבות את תו השורה החדשה במאגר הקלט של המקלדת. לכן, כאשר אתה קורא ל-nextLine(), אתה מקבל מחרוזת ריקה, מה שמוביל לכך שהחריג מנסה לבחון תו במיקום 0, מכיוון שאין כזה. זו גם בעיה ברבות מפונקציות קלט C של המסוף. איכשהו אתה כנראה רוצה לשטוף את המאגר תחילה עם קריאת דמה או משהו. לא השתמשתי ב-Java הרבה זמן אז אני לא יודע מה ההליך הנכון יהיה בדיוק.

gnasher729

מוּשׁהֶה
25 בנובמבר, 2005
  • 2 ביוני 2009
צ'ייס ר אמר: זה עתה סיימתי לכתוב את התוכנית הזו לשיעור ג'אווה שלי. זו תוכנה פשוטה שמחשבת כמה עולה התקנת גדר. בסוף הוא שואל 'האם תרצה לעשות הערכה נוספת (Y/N)', והמשתמש אמור לבחור כן או לא. עם זאת, לאחר שאסיים להפעיל את שלי, לא אקבל את האפשרות הזו, היא רק אומרת:

חשב הערכה נוספת (Y/N): חריגה בשרשור 'ראשי' java.lang.StringIndexOutOfBoundsException: אינדקס מחרוזת מחוץ לטווח: 0
ב-java.lang.String.charAt (String.java:558)
ב-Test1.main(Test1.java:73)

למה זה עושה את זה!!!

מכיוון שיש לך את קוד המקור, כנראה בעורך תוכנה שניתן לגרום להצגת מספרי שורות, אתה אמור להיות מסוגל למצוא היכן נמצאת שורה 73 בקובץ Test1.main. זה יראה לך איפה הבעיה מתרחשת.

עכשיו יש לך חריג שאומר שהאינדקס של 0 הוא 'מחוץ לטווח'. אם אתה ניגש למחרוזת עם n תווים, מהם המדדים החוקיים?

עכשיו אתה יכול להגיד לנו באיזה מצב בדיוק המדד 0 אינו מדד חוקי?

זה אמור לענות על השאלה שלך.

SilentPanda

מנחה אמריטוס
8 באוקטובר 2002
יער הבמבוק
  • 2 ביוני 2009
gnasher729 אמר: מכיוון שיש לך את קוד המקור, כנראה בעורך תוכנה שניתן להציג מספרי שורות, אתה אמור להיות מסוגל למצוא היכן נמצאת שורה 73 בקובץ Test1.main. זה יראה לך איפה הבעיה מתרחשת.

השורה היא:

קוד: |_+_|
מיד אחרי שהוא מציג 'חשב הערכה נוספת (י/נ):'