搜索插件、代码仓与 APP 分类

插件详情v2.2.0

change_case

一个用于补充 camelCase、PascalCase、首字母大写、snake_case、param-case、CONSTANT_CASE 等缺失方法的 String 扩展。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
18.1万
喜欢数
71
Pub 分数
160

安装插件

flutter pub add change_case

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

change_case 包通过为 Dart 中的 String 类添加便捷方法,扩展了文本在各种大小写格式之间的转换功能,包括 camelCase、PascalCase、snake_case、param-case 和 CONSTANT_CASE。它简化了应用程序开发中常见的字符串转换任务,例如格式化 API 响应、生成动态标识符或确保代码库中命名约定的一致性。该包轻量且支持所有主要平台,非常适合需要强大文本处理功能的跨平台 Flutter 应用。

适合场景

  • 格式化 API 响应键
  • 生成一致的变量名
  • 将用户输入转换为标准化格式
  • 创建友好的URL字符串
  • 处理配置键命名
  • 简化代码生成工作流程

主要特点

  • 扩展 String 以提供转换方法
  • 支持多种大小写格式
  • 轻量且易于集成
  • 跨平台兼容性
  • 无外部依赖
  • 简洁、可读性强的语法

适合对象

  • 需要字符串格式化的Flutter开发人员
  • 具有严格命名约定的项目
  • API数据处理管道
  • 代码生成工具
  • 需要 URL 或标识符规范化应用

使用建议

  • 不处理复杂的语言规则
  • 限于预定义的大小写模式
  • 不适合高级文本处理
  • 需要手动处理边缘情况
  • 无内置的无效输入验证

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

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

所属分类

依赖

依赖清单 1 项

源码仓库

使用此插件的项目