Search packages, repositories and app categories

Package detailsv2.2.0

change_case

An extension on String for the missing methods for camelCase, PascalCase, Capital Case, snake_case, param-case, CONSTANT_CASE and others.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
169K
Likes
70
Pub points
160

Install package

flutter pub add change_case

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

The change_case package extends the String class in Dart with convenient methods to convert text between various casing formats, including camelCase, PascalCase, snake_case, param-case, and CONSTANT_CASE. It simplifies string transformation tasks commonly needed in app development, such as formatting API responses, generating dynamic identifiers, or ensuring consistent naming conventions across codebases. The package is lightweight and supports all major platforms, making it ideal for cross-platform Flutter applications that require robust text manipulation.

Use cases

  • Formatting API response keys
  • Generating consistent variable names
  • Converting user input to standardized formats
  • Creating URL-friendly strings
  • Handling configuration key naming
  • Simplifying code generation workflows

Key features

  • Extends String with conversion methods
  • Supports multiple casing formats
  • Lightweight and easy to integrate
  • Cross-platform compatibility
  • No external dependencies
  • Clean, readable syntax

Suitable for

  • Flutter developers needing string formatting
  • Projects with strict naming conventions
  • API data processing pipelines
  • Code generation tools
  • Apps requiring URL or identifier normalization

Considerations

  • Does not handle complex linguistic rules
  • Limited to predefined casing patterns
  • Not suitable for advanced text processing
  • Requires manual handling of edge cases
  • No built-in validation for invalid inputs

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Change Case

style: very good analysis License: MIT codecov style: effective dart

Transform a string between camelCase, PascalCase, Capital Case, snake_case, param-case, CONSTANT_CASE and others.


Core

These functions come with package:change_case

toCamelCase

Transform into a string with the separator denoted by the next word capitalized.

'test string'.toCamelCase(); // 'testString'
toCapitalCase

Transform into a space separated string with each word capitalized.

'test string'.toCapitalCase(); // 'Test String'
toConstantCase

Transform into upper case string with an underscore between words.

'test string'.toConstantCase(); // 'TEST_STRING'
toDotCase

Transform into a lower case string with a period between words.

'test string'.toDotCase(); // 'test.string'
toHeaderCase

Transform into a dash separated string of capitalized words.

'test string'.toHeaderCase(); // 'Test-String'
toNoCase

Transform into a lower cased string with spaces between words.

'testString'.toNoCase(); // 'test string'
toParamCase

Transform into a lower cased string with dashes between words.

'test string'.toParamCase(); // 'test-string'
toPascalCase

Transform into a string of capitalized words without separators.

'test string'.toPascalCase(); // 'TestString'
toPathCase

Transform into a lower case string with slashes between words.

'test string'.toPathCase(); // 'test/string'

// provide a separator override default '/'
'test string'.toPathCase(r'\'); // 'test\string'

toSentenceCase

Transform into a lower case with spaces between words, then capitalize the string.

'testString'.toSentenceCase(); // 'Test string'
toSnakeCase

Transform into a lower case string with underscores between words.

'test string'.toSnakeCase(); // 'test_string'

Other Case Utilities

toTitleCase

Transform a string into title case following English rules.

'a simple test'.toTitleCase(); // 'A Simple Test'
toSwapCase

Transform a string by swapping every character from upper to lower case, or lower to upper case.

'Test String'.toSwapCase(); // 'tEST sTRING'
isLowerCase

Returns true if the string is lower case only.

'test string'.isLowerCase(); // true
isUpperCase

Returns true if the string is upper case only.

'test string'.isUpperCase(); // false
toLowerFirstCase

Transforms the string with the first character in lower cased.

'TEST'.toLowerFirstCase(); // 'tEST'
toUpperFirstCase

Transforms the string with the first character in upper cased.

'test'.toUpperFirstCase(); // 'Test'
toSpongeCase

Transform into a string with random capitalization applied.

'Test String'.toSpongeCase(); // 'tEst stRINg'

Configuration

package:change_case has a configuration file, ChangeCaseConfig, that you can use to update splitPatterns, stripPatterns, and the placeholder which will be applied to most function listed above.

I don't suggest changing these unless you know what you are doing 😁

Patterns

Change case uses RegExp to split & replace characters of the string. While they are great at what they do, you may want to update or add new patterns.

These patterns can be updated by using the ChangeCaseConfig.setUp(splitPatterns: [...], stripPatterns: [...])

The default patterns are:

Note: (?:•)* is used to match any "•" (placeholder) character.

  • Split

    • ChangeCaseConfig.lowerOrNumToUpperPattern

      // matches lowercase or numeric char to uppercase char
      RegExp('([a-z0-9])(?:•)*([A-Z])')
      
    • ChangeCaseConfig.lowerOrNumToUpperPattern

      // matches uppercase char to uppercase followed by lowercase char
      RegExp('([A-Z])(?:•)*([A-Z][a-z])')
      
  • Strip

    • ChangeCaseConfig.upperToLowerPattern

      // matches any non-alphanumeric char
      RegExp('[^A-Z0-9]+', caseSensitive: false)
      
    • ChangeCaseConfig.lowerToNumOrUpperPattern (Not included in default, but can be used to add or replace)

      // matches lowercase char to numeric or uppercase char
      // changes the behavior to `word2019 -> word 2019` and `minifyURLs -> minify urls`
      RegExp('([a-z])([A-Z0-9])')
      

Placeholder

can be configured with ChangeCaseConfig.setUp(placeholder: ...)

The placeholder is a string that is added and used as a reference to configure each case.

The default placeholder is "•"

For example:

final string = 'test stringCase';
print(string.toCamelCase()); // expected: 'testStringCase'

// runs splitPatterns, returns "test string•Case"
// runs stripPatterns, returns "test•string•Case"
// runs camel case logic, returns "testStringCase"

This string needs to be a unique character that is not used in the string.

Related

Categories

Dependencies

Dependency list 1 items

Source repository

Projects using this package