Kotlin 文字列の始まり/終わりを確認(startsWith/endsWith)

Kotlinの文字列の始まりと終わり(先頭と末尾)を真偽値で確認するサンプルです。
startsWithメソッドとendsWithメソッドを使用します。

目次

文字の始まり 文字の始まりを真偽値で確認する(startsWithの引数1つ)
  文字の始まりを真偽値で確認する(startsWithの引数2つ)
文字の終わり 文字の終わりを真偽値で確認する(endsWith)

文字の始まりを真偽値で確認する(startsWithの引数1つ)

public actual fun String.startsWith(検索する文字列): Boolean
  • 文字列が指定した引数で始まっていればtrueを返します。それ以外の場合はfalseを返します。
  • Stringクラスのメソッドです。
fun main() {
    val str1 = "あいうえお"

    if (str1.startsWith("あいう")) {
        println("OK") // OKが出力される
    } else {
        println("NG")
    }
    
    val str2 = "ABCDE"

    if (str2.startsWith("abc")) {
        println("OK")
    } else {
        println("NG") // NGが出力される
    }
}

4行目は、if文とstartsWithで文字列が「あいう」で始まっているか判定し一致するのでtrueが返ります。
12行目は、英字の大文字と小文字は一致していない判定となるのでfalseになります。

 

文字の始まりを真偽値で確認する(startsWithの引数2つ)

public actual fun String.startsWith(検索する文字列, 開始位置): Boolean
  • 2つ目の引数は比較を開始する位置です
  • 文字列が指定した引数で始まっていればtrueを返します。それ以外の場合はfalseを返します。
  • 最初の1文字目の位置は0から始まります。

startsWithメソッドの引数が2つあるサンプルです。

fun main() {
    val str1 = "あいうえお"

    if (str1.startsWith("あいう", 0)) {
        println("OK") // OKが出力される
    } else {
        println("NG")
    }

    if (str1.startsWith("あいう", 1)) {
        println("OK")
    } else {
        println("NG") // NGが出力される
    }

    if (str1.startsWith("いうえ", 1)) {
        println("OK") // OKが出力される
    } else {
        println("NG")
    }
}

4行目は、2つ目の引数が0です。文字列「あいうえお」の「あいう」と「あいう」で比較します。trueです。
10行目は、2つ目の引数が1です。文字列「あいうえお」の2文字目からで「いうえ」と「あいう」で比較します。falseになります。
16行目も、2つ目の引数が1です。文字列「あいうえお」の2文字目からで「いうえ」と「いうえ」で比較します。trueになります。

 

文字の終わりを真偽値で確認する(endsWith)

public boolean endsWith(String suffix)
  • 文字列が指定した引数で終わっていればtrueを返します。それ以外の場合はfalseを返します。
  • Stringクラスのメソッドです。
fun main() {
    val str1 = "あいうえお"

    if (str1.endsWith("えお")) {
        println("OK") // OKが出力される
    } else {
        println("NG")
    }

    val str2 = "ABCDE"

    if (str2.endsWith("de")) {
        println("OK")
    } else {
        println("NG") // NGが出力される
    }
}

4行目は、if文とendsWithで文字列が「えお」で終わっているか判定し一致するのでtrueが返ります。
12行目は、英字の大文字と小文字は一致していない判定となるのでfalseになります。

関連の記事

[Kotlin] indexOf 文字列の位置を取得
Kotlin substring 文字列を切り出す
Kotlin trim 文字列の先頭と末尾の空白を除去

△上に戻る