kotlin 文字列から指定した文字列の位置を取得する

kotlin 文字列から指定した文字列の位置を取得する

kotlinで、文字列から指定した文字列の位置を取得する手順を記述してます。「indexOf」に位置を取得したい文字列を指定します。指定した文字列が存在しない場合は「-1」が返えるので存在チェックなどにも使用できます。

環境

  • OS windows11 home
  • java 19.0.1
  • kotlin 1.7.20-release-201

手順

文字列から指定した文字列の位置を取得するには、「indexOf」で可能です。

文字列.indexOf(文字列) // 位置は、0から開始

※値が存在しない場合は「-1」が返ります

実際に、使用してみます。

fun main() {

    var str = "abcde"

    println( str.indexOf("a") ) // 0

    println( str.indexOf("bc") ) // 1

    println( str.indexOf("f") ) // -1

    str = "あいうえお"

    println( str.indexOf("あ") ) // 0

    println( str.indexOf("いう") ) // 1

}

取得されていることが確認できます。

また、「indexOf」は、以下の実行結果とおりに最初に見つかった位置を返します。

fun main() {

    var str = "abcabc"

    println( str.indexOf("a") ) // 0

    println( str.indexOf("bc") ) // 1

    str = "あいうあいう"

    println( str.indexOf("あ") ) // 0

    println( str.indexOf("いう") ) // 1

}

サロゲートペア文字

通常の2バイトで1文字で表すところを、4バイトで1文字となるサロゲートペア文字だと、取得する位置が2倍になります。

fun main() {

    var str = "🙍😨😪🙈😛😼"

    println( str.indexOf("🙍") ) // 0

    println( str.indexOf("😨😪") ) // 2

    println( str.indexOf("😪") ) // 4

}