よく使うであろう文字列操作を Kotlin についてまとめておきます。
連結
+演算子
val word1 = "Hello"
val word2 = "world!"
println(word1 + " " + word2) // Hello world!
文字列テンプレート
val word1 = "Hello"
val word2 = "world!"
println("$word1 $word2") // Hello world!
切り出し
指定箇所から切り出し
val text = "Hello world!"
println(text.substring(6)) // world!
println(text.substring(0, 5)) // Hello
先頭削除
val text = "Hello world!"
println(text.drop(6)) // world
末尾削除
val text = "Hello world!"
println(text.dropLast(7)) // Hello
長さ
val text = "Hello world!"
println(text.length) // 12
検索
部分一致
val target = "Hello world!"
val word1 = "world"
val word2 = "word"
println(Regex(word1).containsMatchIn(target)) // true
println(Regex(word2).containsMatchIn(target)) // false
完全一致
val target = "Hello world!"
val word1 = "Hello world!"
val word2 = "Hello world"
println(Regex(word1).matches(target)) // true
println(Regex(word2).matches(target)) // false
前方一致
val target = "Hello world!"
val word1 = "Hello"
val word2 = "world!"
println(target.startsWith(word1)) // true
println(target.startsWith(word2)) // false
後方一致
val target = "Hello world!"
val word1 = "Hello"
val word2 = "world!"
println(target.endsWith(word1)) // false
println(target.endsWith(word2)) // true
置換
val text = "Hello world!"
println(text.replace("Hello", "こんにちは")) // こんにちは world!
分割
val text = "リンゴ,バナナ,オレンジ"
val list = text.split(",")
list.forEach{
println(it)
}
// リンゴ
// バナナ
// オレンジ
結合
val text = "リンゴ,バナナ,オレンジ"
val list = text.split(",")
println(list.joinToString(" ")) // "リンゴ バナナ オレンジ"