تشيس ر
ملصق أصلي- 8 مايو 2008
- PDX
- 2 يونيو 2009
حساب تقدير آخر (نعم / لا): استثناء في سلسلة المحادثات 'الرئيسية' java.lang.StringIndexOutOfBoundsException: فهرس السلسلة خارج النطاق: 0
في java.lang.String.charAt (String.java:558)
في Test1.main (Test1.java:73)
لماذا تفعل هذا !!!
هنا البرنامج بالمناسبة:
الكود:
public class Test1 { public static void main( String[] args ) { String customer = ' '; String customerUC = ' '; String type1 = ' '; String type2 = ' '; char type = ' '; String another1 = ' '; char another = 'y'; int fence = 0; int count = 0; double costFoot = 0; double costTotal = 0; double costGrand = 0; Scanner read = new Scanner(System.in); System.out.print( '
----------SIERRA FENCING COMPANY----------' ); while ( Character.toUpperCase(another) == 'Y' ) { System.out.print( '
Your Name: ' ); customer = read.nextLine(); customerUC = customer.toUpperCase(); System.out.print( '
New Installation (N) or Repair (R): ' ); type1 = read.nextLine(); type2 = type1.toUpperCase(); type = type2.charAt(0); System.out.print( '
Amount of Fencing Needed (linear feet): ' ); fence = read.nextInt(); System.out.print( '
Cost-Per-Foot of Fencing: ' ); costFoot = read.nextDouble(); if ( costFoot > 6 && type == 'N' ) { costFoot = 6; } else if ( costFoot > 5 && type == 'R' ) { costFoot = 5; } costTotal = fence * costFoot; costGrand += costTotal; count++; System.out.print( '
-------------------------------------------------------' ); System.out.print( '
Name: ' + customerUC ); System.out.print( '
Type: ' + type ); System.out.print( '
Linear Fencing: ' + fence + ' feet' ); System.out.print( '
Cost-Per-Foot: $' + costFoot ); System.out.print( '
Total: $' + costTotal ); System.out.print( '
-------------------------------------------------------' ); System.out.print( '
Calculate Another Estimate (Y/N): ' ); another1 = read.nextLine(); another = another1.charAt(0); } System.out.print( '
Grand Total: $' + costGrand ); System.out.print( '
You made ' + count + ' estimates' ); } }
ليتلودي 914
- 9 يونيو 2004
- روتشستر ، نيويورك
- 2 يونيو 2009
يحرر: يبدو أن له علاقة بطريقة nextLine () التي تدفع المؤشر إلى ما بعد السطر الحالي. لا أفهم ذلك كثيرًا بنفسي ، لكن هذه الروابط قد تساعد في توضيح بعض الالتباس:
ماسح API
مشاركة المنتدى ذات الصلة
HiRez
- 6 يناير 2004
- غرب الولايات المتحدة
- 2 يونيو 2009
ابي ايدك 729
موقوف عن العمل
- 25 نوفمبر 2005
- 2 يونيو 2009
قال Chase R: لقد انتهيت للتو من كتابة هذا البرنامج لفصلي java. إنه برنامج بسيط يقوم بحساب تكلفة تركيب السياج. في النهاية ، يسألك 'هل ترغب في عمل تقدير آخر (نعم / لا)' ، ويفترض أن يختار المستخدم نعم أم لا. ومع ذلك ، بعد أن انتهيت من تشغيل خاصتي ، لن أحصل على هذا الخيار ، فهو يقول فقط:
حساب تقدير آخر (نعم / لا): استثناء في سلسلة المحادثات 'الرئيسية' java.lang.StringIndexOutOfBoundsException: فهرس السلسلة خارج النطاق: 0
في java.lang.String.charAt (String.java:558)
في Test1.main (Test1.java:73)
لماذا تفعل هذا !!!
نظرًا لأن لديك الكود المصدري ، ربما في محرر برنامج يمكن إجراؤه لعرض أرقام الأسطر ، يجب أن تكون قادرًا على العثور على مكان السطر 73 في الملف Test1.main. سيظهر لك ذلك مكان حدوث المشكلة.
الآن لديك استثناء مفاده أن الفهرس 0 'خارج النطاق'. إذا قمت بالوصول إلى سلسلة بها حرف n ، فما هي المؤشرات الصالحة؟
الآن هل يمكنك إخبارنا في أي حالة بالضبط لا يعتبر الفهرس 0 فهرسًا صالحًا؟
لابد أن ذلك قد أجاب سؤالك.
سايلنت باندا
مشرف فخري
- 8 أكتوبر 2002
- غابة الخيزران
- 2 يونيو 2009
قال gnasher729: نظرًا لأن لديك شفرة المصدر ، ربما في محرر برنامج يمكن إجراؤه لعرض أرقام الأسطر ، يجب أن تكون قادرًا على العثور على مكان السطر 73 في الملف Test1.main. سيظهر لك ذلك مكان حدوث المشكلة.
الخط هو:
الكود:
another1 = read.nextLine();
مباشرة بعد عرض 'احسب تقديرًا آخر (نعم / لا)':
المشاركات الشعبية