Đuổi theo R
Áp phích gốc- Ngày 8 tháng 5 năm 2008
- PDX
- Ngày 2 tháng 6 năm 2009
Tính toán ước tính khác (Y / N): Ngoại lệ trong luồng 'main' java.lang.StringIndexOutOfBoundsException: Chỉ mục chuỗi nằm ngoài phạm vi: 0
tại java.lang.String.charAt (String.java:558)
tại Test1.main (Test1.java:73)
Tại sao nó làm điều này!!!
Nhân tiện đây là chương trình:
Mã:
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' ); } }
Littleodie914
- Ngày 9 tháng 6 năm 2004
- Rochester, NY
- Ngày 2 tháng 6 năm 2009
Chỉnh sửa: Có vẻ như nó có liên quan gì đó đến phương thức nextLine () tiến con trỏ ra ngoài dòng hiện tại. Bản thân tôi cũng không hiểu lắm, nhưng những liên kết này có thể giúp giải tỏa một chút nhầm lẫn:
Máy quét API
Bài đăng trên diễn đàn liên quan
HiRez
- Ngày 6 tháng 1 năm 2004
- Tây Hoa Kỳ
- Ngày 2 tháng 6 năm 2009
gnasher729
Cấm
- Ngày 25 tháng 11 năm 2005
- Ngày 2 tháng 6 năm 2009
Chase R cho biết: Tôi vừa viết xong chương trình này cho lớp java của mình. Đó là một chương trình đơn giản tính toán chi phí để lắp đặt hàng rào. Ở phần cuối, nó hỏi 'bạn có muốn thực hiện một ước tính khác (Y / N)' và người dùng được cho là chọn có hoặc không. Tuy nhiên, sau khi tôi chạy xong, tôi sẽ không nhận được tùy chọn đó, nó chỉ nói:
Tính toán ước tính khác (Y / N): Ngoại lệ trong luồng 'main' java.lang.StringIndexOutOfBoundsException: Chỉ mục chuỗi nằm ngoài phạm vi: 0
tại java.lang.String.charAt (String.java:558)
tại Test1.main (Test1.java:73)
Tại sao nó làm điều này!!!
Vì bạn có mã nguồn, có thể là trong một trình soạn thảo chương trình có thể được tạo để hiển thị số dòng, bạn sẽ có thể tìm thấy dòng 73 trong tệp Test1.main nằm ở đâu. Điều đó sẽ cho bạn thấy vấn đề xảy ra ở đâu.
Bây giờ bạn có một ngoại lệ cho biết chỉ số 0 là 'nằm ngoài phạm vi'. Nếu bạn truy cập một chuỗi có n ký tự, các chỉ số hợp lệ là gì?
Bây giờ bạn có thể cho chúng tôi biết chính xác trong trường hợp nào thì chỉ số 0 không phải là chỉ số hợp lệ không?
Điều đó sẽ trả lời câu hỏi của bạn.
SilentPanda
Người điều hành danh dự
- 8 tháng 10, 2002
- Rừng tre
- Ngày 2 tháng 6 năm 2009
gnasher729 đã nói: Vì bạn có mã nguồn, có thể là trong một trình soạn thảo chương trình có thể được tạo để hiển thị số dòng, bạn sẽ có thể tìm thấy dòng 73 trong tệp Test1.main nằm ở đâu. Điều đó sẽ cho bạn thấy vấn đề xảy ra ở đâu.
Dòng là:
Mã:
another1 = read.nextLine();
ngay sau khi nó hiển thị 'Tính toán một ước tính khác (Y / N):'
Bài ViếT Phổ BiếN