KotlinのstartsWith・endsWithを完全ガイド!文字列の先頭・末尾を判定しよう
生徒
「Kotlinで文字列が特定の言葉で始まっているか、終わっているかを調べる方法ってありますか?」
先生
「ありますよ。KotlinではstartsWithとendsWithという関数を使えば、文字列の先頭や末尾を簡単にチェックできます。」
生徒
「たとえば「https://」で始まっているURLかどうかって調べられるんですか?」
先生
「はい、それもstartsWithを使えばバッチリ判定できます。では、具体的に使い方を見ていきましょう!」
1. startsWithとは?文字列の先頭を調べるKotlinの基本機能
Kotlin(コトリン)のstartsWithは、「この文字列は特定の言葉で始まっているか?」を調べるための文字列判定メソッドです。とてもシンプルですが、ユーザーの入力チェックやURLの判定などに非常に役立ちます。
たとえば、「https://」で始まる文字列だけを受け付けたいときに使えます。
fun main() {
val url = "https://example.com"
if (url.startsWith("https://")) {
println("安全な接続です")
} else {
println("http接続です")
}
}
安全な接続です
startsWithは、判定したい文字列が最初に来ているかどうかをtrueかfalseで返します。
2. endsWithとは?文字列の末尾をチェックするKotlinの使い方
endsWithは、文字列の最後(末尾)が特定の文字列で終わっているかどうかを調べるためのKotlin関数です。たとえば、ファイル名が「.jpg」や「.png」で終わっているか確認するのに便利です。
fun main() {
val fileName = "photo.jpg"
if (fileName.endsWith(".jpg")) {
println("JPEG画像です")
} else {
println("JPEG画像ではありません")
}
}
JPEG画像です
このように、ファイルの種類や入力の形式をチェックしたいときにendsWithは大活躍します。
3. KotlinのstartsWith・endsWithの注意点:大文字・小文字の違い
KotlinでstartsWithやendsWithを使うときは、「大文字」と「小文字」が区別されることに注意が必要です。
たとえば、「Hello」と「hello」は別物として扱われるので、想定と違う結果になる場合があります。
fun main() {
val greeting = "Hello, Kotlin!"
println(greeting.startsWith("hello")) // falseになる
}
false
大文字小文字を区別したくない場合は、すべてlowercase()などで変換してから使う方法があります。
fun main() {
val greeting = "Hello, Kotlin!"
println(greeting.lowercase().startsWith("hello")) // trueになる
}
true
4. Kotlinでメールアドレスや電話番号をチェックする例
startsWithやendsWithは、メールアドレスや電話番号のチェックにも使えます。
たとえば、「@gmail.com」で終わるメールだけを対象にしたいときはこう書きます。
fun main() {
val email = "example@gmail.com"
if (email.endsWith("@gmail.com")) {
println("Gmailのアドレスです")
}
}
Gmailのアドレスです
また、電話番号が「080」で始まっているか確認したいときは、次のようにします。
fun main() {
val phone = "08012345678"
if (phone.startsWith("080")) {
println("携帯電話番号です")
}
}
携帯電話番号です
このように、特定のルールに従った文字列を判定したいときに、KotlinのstartsWithとendsWithはとても便利です。
5. startsWith・endsWithは文字列検索に最適なKotlin関数
たとえば、検索機能を作るとき、特定の言葉で始まるタイトルだけを表示したいときなどにも、KotlinのstartsWithはよく使われます。
また、特定の拡張子で終わるファイルだけを抽出したい場合にはendsWithを使えば簡単です。
文字列の一部分を調べたいとき、文字の先頭や末尾が特定の文字列と一致するかをチェックする処理は非常に多くのアプリやWebサービスで使われています。