🍀
Kotlinの標準APIを知る【String編①】
JetBrainsさんが公開してくれていたTips
こちらで紹介してくれているTipsをまとめてみました。
Tips1 removeXXXXX
val fileName = "sample.jpeg"
println(fileName.removeSuffix(".jpeg"))
// => sample
val corporateName = "(株)sample"
println(corporateName.removePrefix("(株)"))
// => sample
val methodName = "__METHOD_NAME__"
println(methodName.removeSurrounding("__"))
// => METHOD_NAME
JavaとかでreplaceAll(regex, "")
とかで書きがちなやつを読み手に伝わりやすく書けるようになっていると思います。
Tips2 ifBlank
val target: String = ""
// println(if(target.isEmpty()) "empty" else target)
println(target.ifBlank {"empty"})
コメントアウトされたif文による記述をするとInteliiJだと置き換えを勧めてくれます。ほんとインテリです。
Javaで三項演算子やわかりずらいIf文の手続き的な記述をしがちなところを宣言的な形でとても分かりやすく記述できます。ラムダを受け取れるのも素敵ですね。
※標準APIの中だけだと対象がnullableな場合は使えないのだけ痛いかなと思います。
=>ここは上手く実装真似てnullableでも対応できる拡張関数生やしてもいいかもしれません。
Tips3 ケースインセンティブな比較
val a = "JAPAN"
val b = "Japan"
println(a.equals(b)) // => false
println(a.equals(b, ignoreCase = true)) // => true
便利ですね!Javaで良くString.lowercase()
してから比較とか書いてたのがいかに愚かか痛感させられました。
Discussion