Rumah  >  Artikel  >  Java  >  StringIndexOutOfBoundsException dalam Java - penyelesaian kepada rentetan di luar sempadan

StringIndexOutOfBoundsException dalam Java - penyelesaian kepada rentetan di luar sempadan

PHPz
PHPzasal
2023-06-25 17:25:533236semak imbas

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);

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);

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];

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);
}

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);
}

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];
}

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!

Kenyataan:
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