kotlin Exception「java.lang.IndexOutOfBoundsException: start x, end x, length x」の解決方法
kotlinで、Exception「java.lang.IndexOutOfBoundsException: start x, end x, length x」の解決方法を記述してます。「removeRange」等を使用時に範囲を超えた場合に発生します。
環境
- OS windows11 home
- java 19.0.1
- kotlin 1.7.20-release-201
Exception全文
以下のコードで発生。
fun main() {
var str = "abcde"
println( str.removeRange(0,6) )
}
Exception
Exception in thread "main" java.lang.NegativeArraySizeException: -1
at java.base/java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:88)
at java.base/java.lang.StringBuilder.<init>(StringBuilder.java:119)
at kotlin.text.StringsKt__StringsKt.removeRange(Strings.kt:555)
at HelloKt.main(hello.kt:5)
at HelloKt.main(hello.kt)
原因
「removeRange」で削除する範囲が文字列の文字数を超えていたため
対処法
最大範囲を指定するなら「length」などを使用して、範囲を超えないようにする
fun main() {
var str = "abcde"
println( str.removeRange(3,str.length) )
// abc
}
-
前の記事
Google ドライブ 新規ドキュメントを作成するショートカットキー 2023.02.06
-
次の記事
kotlin URLからドメインやプロトコル・ポート番号・パスを抽出する 2023.02.06
コメントを書く