Lainnya

Mac 'Indeks string di luar jangkauan: 0' ...Dapatkah seseorang memberi tahu saya apa yang salah di sini? (Jawa)

Kejar R

poster asli
8 Mei 2008
PDX
  • 2 Juni 2009
Saya baru saja selesai menulis program ini untuk kelas Java saya. Ini adalah program sederhana yang menghitung berapa biaya untuk memasang pagar. Pada akhirnya, ia menanyakan 'apakah Anda ingin membuat perkiraan lain (Y/T)', dan pengguna harus memilih ya atau tidak. Namun, setelah saya selesai menjalankan milik saya, saya tidak akan mendapatkan opsi itu, hanya tertulis:

Hitung Perkiraan Lain (Y/T): Pengecualian di utas 'utama' java.lang.StringIndexOutOfBoundsException: Indeks string di luar jangkauan: 0
di java.lang.String.charAt (String.java:558)
di Test1.main(Test1.java:73)

Mengapa melakukan ini!!!

Berikut adalah programnya:

Kode: |_+_|

Littleodie914

9 Juni 2004


Rochester, NY
  • 2 Juni 2009
Wow, itu rumit. Saya membuatnya bekerja dengan mengubah 'read.nextLine()' terakhir Anda menjadi hanya 'read.next()', tapi saya akan melihat lebih dekat untuk melihat mengapa itu tidak bekerja dengan cara pertama.

Sunting: Tampaknya ada hubungannya dengan metode nextLine() memajukan pointer di luar baris saat ini. Saya sendiri tidak terlalu memahaminya, tetapi tautan ini mungkin membantu menjernihkan sedikit kebingungan:

Scanner API
Posting Forum Terkait

HaiRez

6 Januari 2004
AS Barat
  • 2 Juni 2009
Saya akan menebak bahwa salah satu dari Anda sebelumnya panggilan baca meninggalkan karakter baris baru di buffer input keyboard. Oleh karena itu, saat Anda memanggil nextLine(), Anda mendapatkan string kosong, yang mengarah ke pengecualian yang mencoba memeriksa karakter di posisi 0, karena tidak ada. Ini juga merupakan masalah dengan banyak fungsi input C konsol. Entah bagaimana Anda mungkin ingin menyiram buffer terlebih dahulu dengan panggilan baca dummy atau sesuatu. Saya sudah lama tidak menggunakan Java jadi saya tidak tahu persis seperti apa prosedur yang tepat.

gnasher729

Tergantung
25 November 2005
  • 2 Juni 2009
Chase R berkata: Saya baru saja selesai menulis program ini untuk kelas Java saya. Ini adalah program sederhana yang menghitung berapa biaya untuk memasang pagar. Pada akhirnya, ia menanyakan 'apakah Anda ingin membuat perkiraan lain (Y/T)', dan pengguna harus memilih ya atau tidak. Namun, setelah saya selesai menjalankan milik saya, saya tidak akan mendapatkan opsi itu, hanya tertulis:

Hitung Perkiraan Lain (Y/T): Pengecualian di utas 'utama' java.lang.StringIndexOutOfBoundsException: Indeks string di luar jangkauan: 0
di java.lang.String.charAt (String.java:558)
di Test1.main(Test1.java:73)

Mengapa melakukan ini!!!

Karena Anda memiliki kode sumber, mungkin dalam editor program yang dapat dibuat untuk menampilkan nomor baris, Anda harus dapat menemukan di mana baris 73 dalam file Test1.main berada. Itu akan menunjukkan di mana masalah terjadi.

Sekarang Anda memiliki pengecualian yang mengatakan indeks 0 'di luar jangkauan'. Jika Anda mengakses string dengan n karakter, apa indeks yang valid?

Sekarang dapatkah Anda memberi tahu kami dalam situasi apa indeks 0 bukan indeks yang valid?

Itu harus menjawab pertanyaan Anda.

diamPanda

Emeritus moderator
8 Oktober 2002
Hutan Bambu
  • 2 Juni 2009
gnasher729 berkata: Karena Anda memiliki kode sumber, mungkin dalam editor program yang dapat dibuat untuk menampilkan nomor baris, Anda seharusnya dapat menemukan di mana baris 73 dalam file Test1.main berada. Itu akan menunjukkan di mana masalah terjadi.

Garisnya adalah:

Kode: |_+_|
tepat setelah itu menampilkan 'Hitung Perkiraan Lain (Y/T):'