目次
Kotlin で文字列を変換するコードを書きました。 今回やったのは次の4つです。
- 先頭を小文字にする
- 先頭を大文字にする
- スネークケースの文字列をキャメルケースにする
- キャメルケースの文字列をスネークケースにする
GitHub で公開しており、 build.gradle に記述することでプロジェクト内で使用可能です。
コード
先頭を小文字にする
1 2 3 4 5 6 7 |
fun String.beginWithLowerCase(): String { return when (this.length) { 0 -> "" 1 -> this.toLowerCase() else -> this[0].toLowerCase() + this.substring(1) } } |
正規表現を使う方法もありますね。
先頭を大文字にする
1 2 3 4 5 6 7 |
fun String.beginWithUpperCase(): String { return when (this.length) { 0 -> "" 1 -> this.toUpperCase() else -> this[0].toUpperCase() + this.substring(1) } } |
使いみちはないかもしれませんが、小文字にするメソッドがあったので大文字にするメソッドも作りました。
キャメルケースにする
1 2 3 4 |
fun String.toCamelCase(): String { return this.split('_').map { it.beginWithUpperCase() } .joinToString("") } |
もともとスネークケースのものに対してのみ有効です。
スネークケースにする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
fun String.toSnakeCase(): String { var text: String = "" var isFirst = true this.forEach { if (it.isUpperCase()) { if (isFirst) isFirst = false else text += "_" text += it.toLowerCase() } else { text += it } } return text } |
もともとキャメルケースの文字列に対して有効です。 正規表現も考えましたがすぐには思いつきませんでした。