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!