kasechange
Introduction: 🐫 - 🐍 -🍢 - 🅿 Multiplatform Kotlin library to convert strings between various case formats including Camel Case, Snake Case, Pascal Case and Kebab Case
Tags:
Multiplatform Kotlin library to convert strings between various case formats
Supported Case Formats
- SCREAMING_SNAKE_CASE
- snake_case
- PascalCase
- camelCase
- TRAIN-CASE
- kebab-case
- UPPER SPACE CASE
- Title Case
- Sentence case
- lower space case
- UPPER.DOT.CASE
- dot.case
- custom one :)
Setup
Add the lib to your project's dependencies:
Groovy (replace
$kasechange_versionwith the version you want):// universal dependency for Gradle 5.3 and above // in case of multiplatform project, just specify the dependency for commonMain/commonTest source set implementation "net.pearx.kasechange:kasechange:$kasechange_version"// for Gradle versions below 5.3: implementation "net.pearx.kasechange:kasechange-metadata:$kasechange_version" // for Common // or implementation "net.pearx.kasechange:kasechange-jvm:$kasechange_version" // for JVM // or implementation "net.pearx.kasechange:kasechange-js:$kasechange_version" // for JS // or implementation "net.pearx.kasechange:kasechange-android:$kasechange_version" // for Android // or implementation "net.pearx.kasechange:kasechange-PLATFORM_YOU_WANT:$kasechange_version" // for NativeKotlin (replace
$kasechangeVersionwith the version you want):// universal dependency for Gradle 5.3 and above // in case of multiplatform project, just specify the dependency for commonMain/commonTest source set implementation("net.pearx.kasechange:kasechange:$kasechangeVersion")// for Gradle versions below 5.3: implementation("net.pearx.kasechange:kasechange-metadata:$kasechangeVersion") // for Common // or implementation("net.pearx.kasechange:kasechange-jvm:$kasechangeVersion") // for JVM // or implementation("net.pearx.kasechange:kasechange-js:$kasechangeVersion") // for JS // or implementation("net.pearx.kasechange:kasechange-android:$kasechangeVersion") // for Android // or implementation("net.pearx.kasechange:kasechange-PLATFORM_YOU_WAN:$kasechangeVersion") // for NativeUse the library and have fun!
Examples:
- Transforming string from any case to specific one:
"IAmAPascalCasedString123".toSnakeCase() // i_am_a_pascal_cased_string_123 "IAmAPascalCasedString123".toCase(CaseFormat.LOWER_UNDERSCORE) // i_am_a_pascal_cased_string_123 "IAmAPascalCasedString123".toCase(to = CaseFormat.LOWER_UNDERSCORE, from = universalWordSplitter()) // i_am_a_pascal_cased_string_123 "IAmAPascalCasedString123".toSnakeCase(universalWordSplitter()) // i_am_a_pascal_cased_string_123 "IAmAPascalCasedString123".toCase(to = CaseFormat.LOWER_UNDERSCORE, from = universalWordSplitter(treatDigitsAsUppercase = false)) // i_am_a_pascal_cased_string123 "IAmAPascalCasedString123".toSnakeCase(universalWordSplitter(treatDigitsAsUppercase = false)) // i_am_a_pascal_cased_string123 - Transforming string from one case to another:
"123e4567-e89b-12d3-a456-426655440000".toSnakeCase(CaseFormat.LOWER_HYPHEN) // 123e4567_e89b_12d3_a456_426655440000 "123e4567-e89b-12d3-a456-426655440000".toCase(to = CaseFormat.LOWER_UNDERSCORE, from = CaseFormat.LOWER_HYPHEN) // 123e4567_e89b_12d3_a456_426655440000
- Transforming string from any case to specific one:
- Transforming string to a custom case:
"some_string".toCase(CaseFormatterConfig(false, "..", wordCapitalize = true, firstWordCapitalize = true)) // Some..String- Splitting a string in any case into words:
"XMLExtendedParser".splitToWords() // [XML, Extended, Parser] "XMLExtendedParser2".splitToWords(universalWordSplitter(treatDigitsAsUppercase = true)) // [XML, Extended, Parser, 2] "XMLExtendedParser2".splitToWords(universalWordSplitter(treatDigitsAsUppercase = false)) // [XML, Extended, Parser2] - Splitting a string in specific case into words:
"s0meth1ng_in_snake_case".splitToWords(CaseFormat.LOWER_UNDERSCORE) // [s0meth1ng, in, snake, case]
- Splitting a string in any case into words:
