Rumah > Java > javaTutorial > teks badan

StringIndexOutOfBoundsException dalam Java - penyelesaian kepada rentetan di luar sempadan

PHPz
Lepaskan: 2023-06-25 17:25:53
asal
3258 orang telah melayarinya

Di Java, StringIndexOutOfBoundsException (rentetan di luar sempadan) ialah ralat biasa. Ralat ini biasanya berlaku semasa memproses rentetan, dan program yang berurusan dengan jumlah teks yang besar mungkin terlibat dalam situasi ini. Artikel ini akan memperkenalkan situasi dan penyelesaian StringIndexOutOfBoundsException dalam Java.

Apakah itu StringIndexOutOfBoundsException?

StringIndexOutOfBoundsException juga dipanggil String di luar sempadan Apabila kita menggunakan operasi rentetan Java, jika kita mengakses melebihi julat rentetan, pengecualian masa jalan ini mungkin berlaku. Jenis pengecualian ini mewarisi daripada kelas RuntimeException.

Situasi biasa

Apabila menggunakan kaedah rentetan charAt()

Apabila kita menggunakan kaedah charAt() untuk mendapatkan aksara rentetan, kita boleh mendapatkan aksara tertentu dengan menyatakan nombornya. Jika nombor ini melebihi panjang rentetan, StringIndexOutOfBoundsException berlaku.

Contohnya:

String str = "Java is a good programming language.";
char c = str.charAt(50);
Salin selepas log masuk

Jika aksara yang diperolehi melalui kaedah charAt() melebihi panjang rentetan, pengecualian di luar sempadan akan dilemparkan.

Apabila menggunakan kaedah subrentetan() rentetan

kaedah subrentetan() boleh mengekstrak rentetan dalam rentetan, dan anda boleh mengawal panjang subrentetan dengan menyatakan nombor permulaan dan penamat. Jika kedudukan mula dan akhir tidak berada dalam julat rentetan, pengecualian akan dilemparkan.

Contohnya:

String str = "Java is a good programming language.";
String subStr = str.substring(50, 60);
Salin selepas log masuk

Dalam kes ini, jika nombor melebihi panjang rentetan, pengecualian di luar sempadan akan dilemparkan.

Apabila menggunakan tatasusunan rentetan

Apabila menggunakan tatasusunan rentetan, StringIndexOutOfBoundsException juga terdedah untuk berlaku. Jika kita bertanya untuk elemen yang melebihi panjang tatasusunan, pengecualian akan dilemparkan.

Contohnya:

String[] arr = new String[]{"Java", "Python", "C++", "Ruby"};
String str = arr[10];
Salin selepas log masuk

Dalam kes di atas, jika elemen yang kita rujuk tidak berada dalam julat tatasusunan, pengecualian di luar sempadan akan berlaku.

Penyelesaian

Kita boleh mengelakkan StringIndexOutOfBoundsException dengan cara berikut.

Apabila menggunakan kaedah charAt(), pastikan nombor yang ditentukan berada dalam julat rentetan.

String str = "Java is a good programming language.";
if (str.length() > 50) {
    char c = str.charAt(50);
}
Salin selepas log masuk

Apabila menggunakan kaedah subrentetan(), pastikan kedudukan mula dan akhir berada dalam julat rentetan.

String str = "Java is a good programming language.";
if (str.length() > 50 && str.length() > 60) {
    String subStr = str.substring(50, 60);
}
Salin selepas log masuk

Apabila menggunakan tatasusunan rentetan, kini pastikan elemen yang ditanya wujud dalam tatasusunan.

String[] arr = new String[]{"Java", "Python", "C++", "Ruby"};
if (arr.length > 10) {
    String str = arr[10];
}
Salin selepas log masuk

Ringkasan

StringIndexOutOfBoundsException ialah pengecualian biasa apabila berurusan dengan operasi rentetan. Kita harus berhati-hati apabila menggunakan kaedah rentetan. Jika pengecualian berlaku, kita harus menyemak parameter yang dihantar kepada kaedah rentetan untuk memastikan ia tidak melebihi panjang rentetan.

Atas ialah kandungan terperinci StringIndexOutOfBoundsException dalam Java - penyelesaian kepada rentetan di luar sempadan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!