Lain-Lain

Mac 'Indeks rentetan di luar julat: 0' ...Bolehkah seseorang memberitahu saya apa yang salah di sini? (Jawa)

Kejar R

Poster asal
8 Mei 2008
PDX
  • 2 Jun 2009
Saya baru sahaja selesai menulis program ini untuk kelas java saya. Ia adalah program mudah yang mengira berapa kos untuk memasang pagar. Pada penghujungnya, ia bertanya 'adakah anda ingin membuat anggaran lain (Y/N)', dan pengguna sepatutnya memilih ya atau tidak. Walau bagaimanapun, selepas saya selesai menjalankan saya, saya tidak akan mendapat pilihan itu, ia hanya berkata:

Kira Anggaran Lain (Y/N): Pengecualian dalam benang 'utama' java.lang.StringIndexOutOfBoundsException: Indeks rentetan di luar julat: 0
di java.lang.String.charAt (String.java:558)
di Test1.main(Test1.java:73)

Mengapa ia melakukan ini!!!

Berikut adalah programnya:

Kod: |_+_|

Littleodie914

9 Jun 2004


Rochester, NY
  • 2 Jun 2009
Wah, rumitnya. Saya membuatnya berfungsi dengan menukar 'read.nextLine()' terakhir anda kepada hanya 'read.next()', tetapi saya akan melihat lebih dekat untuk melihat mengapa ia tidak berfungsi dengan cara pertama.

Sunting: Nampaknya ada kaitan dengan kaedah nextLine() yang memajukan penuding melebihi baris semasa. Saya sendiri tidak begitu memahaminya, tetapi pautan ini mungkin membantu menyelesaikan sedikit kekeliruan:

Pengimbas API
Catatan Forum Berkaitan

HiRez

6 Jan 2004
AS Barat
  • 2 Jun 2009
Saya akan meneka bahawa salah seorang daripada anda sebelumnya panggilan baca meninggalkan aksara baris baharu dalam penimbal input papan kekunci. Oleh itu, apabila anda memanggil nextLine(), anda mendapat rentetan kosong, yang membawa kepada pengecualian cuba memeriksa aksara pada kedudukan 0, kerana tiada satu pun. Ini juga merupakan masalah dengan banyak fungsi input C konsol. Entah bagaimana anda mungkin mahu mengepam penimbal terlebih dahulu dengan panggilan baca palsu atau sesuatu. Saya tidak menggunakan Java dalam masa yang lama jadi saya tidak tahu prosedur yang betul.

gnasher729

Digantung
25 Nov 2005
  • 2 Jun 2009
Chase R berkata: Saya baru sahaja selesai menulis program ini untuk kelas java saya. Ia adalah program mudah yang mengira berapa kos untuk memasang pagar. Pada penghujungnya, ia bertanya 'adakah anda ingin membuat anggaran lain (Y/N)', dan pengguna sepatutnya memilih ya atau tidak. Walau bagaimanapun, selepas saya selesai menjalankan saya, saya tidak akan mendapat pilihan itu, ia hanya berkata:

Kira Anggaran Lain (Y/N): Pengecualian dalam benang 'utama' java.lang.StringIndexOutOfBoundsException: Indeks rentetan di luar julat: 0
di java.lang.String.charAt (String.java:558)
di Test1.main(Test1.java:73)

Mengapa ia melakukan ini!!!

Memandangkan anda mempunyai kod sumber, mungkin dalam editor program yang boleh dibuat untuk memaparkan nombor baris, anda sepatutnya dapat mencari di mana baris 73 dalam fail Test1.main berada. Itu akan menunjukkan kepada anda di mana masalah itu berlaku.

Kini anda mempunyai pengecualian yang mengatakan indeks 0 adalah 'di luar julat'. Jika anda mengakses rentetan dengan n aksara, apakah indeks yang sah?

Sekarang bolehkah anda memberitahu kami dalam situasi yang manakah indeks 0 bukan indeks yang sah?

Itu sepatutnya menjawab soalan anda.

SilentPanda

Moderator emeritus
8 Okt 2002
Hutan Buluh
  • 2 Jun 2009
gnasher729 berkata: Memandangkan anda mempunyai kod sumber, mungkin dalam editor program yang boleh dibuat untuk memaparkan nombor baris, anda sepatutnya dapat mencari di mana baris 73 dalam fail Test1.main berada. Itu akan menunjukkan kepada anda di mana masalah itu berlaku.

Barisannya ialah:

Kod: |_+_|
sejurus selepas ia memaparkan 'Kira Anggaran Lain (Y/N):'