文本工具

TextsUtil 是一组用于字符串拆分、数字格式化、时间转换与数据清洗的通用工具函数。
这些方法常用于数据管线、运行时数据解析、Excel 配表读取以及 UI 显示等场景。

本页将介绍 TextsUtil 提供的全部核心功能。


1. 字符串拆分

文本工具提供多种风格的分隔符(英文、中文符号均兼容)。

支持的分隔符类型(SplitType)

  • Semicolon(; 或 ;)
  • Comma(, 或 ,)
  • Percent(%)
  • Colon(: 或 :)
  • Space(空格)
  • Pipe(|)
  • Underscore(_)

1.1 拆分为字符串数组

string[] arr = TextsUtil.SplitStrToStrArr("1;2;3", SplitType.Semicolon);

兼容中文符号(例如 ; 会自动替换为 ;)。

1.2 拆分为整型数组

int[] arr = TextsUtil.SplitStrToIntArr("10,20,30", SplitType.Comma);

1.3 拆分键值对(int, int)

可使用框架自带的LogUtil来代替Unity的Debug/print来简单测试数据。
详情请见日志工具

TextsUtil.SplitStrToIntArrTwice("1001=5;1002=3", 
    SplitType.Semicolon, SplitType.Equal, (id, count) =>
{
    LogUtil.Info(id + " / " + count);
});

1.4 拆分键值对(string, string)

TextsUtil.SplitStrToStrArrTwice("HP:100|MP:50", 
    SplitType.Pipe, SplitType.Colon, (key, value) => {});

2. 数字格式化

2.1 补零格式(D)

TextsUtil.GetNumStr(7, 3);   // "007"

2.2 小数位格式(F)

TextsUtil.GetDecimalStr(3.14159f, 2);   // "3.14"

2.3 大数格式化(中文单位)

TextsUtil.GetBigDataToString(123456789);
// 输出:1亿2千万
TextsUtil.GetBigDataToString(45000);
// 输出:4万5千

3. 时间转换

3.1 秒 → 时分秒(自定义单位)

TextsUtil.SecondToHMS(3661);
// 输出:1时1分1秒

可选参数:

  • 是否忽略 0 值
  • 是否统一两位(01 时 03 分)
  • 自定义拼接字符

3.2 秒 → 00:00:00 格式

TextsUtil.SecondToHMS2(3661);
// 输出:01:01:01

4. 字符串处理

4.1 驼峰命名(camelCase)

TextsUtil.ToCamelCase("PlayerName");   // playerName

4.2 Pascal 命名(首字母大写)

TextsUtil.ToPascalCase("playerName");  // PlayerName

4.3 过滤非法字符

移除非字母、数字、下划线的字符:

TextsUtil.RemoveInvalidChars("HP%Value!");  // HPValue

4.4 修正中文符号

TextsUtil.NormalizePunctuation("(测试:100)");
// 输出:(测试:100)

5. 数据清洗(Excel 配表常用)

5.1 修正 JSON 格式

可将以下任意格式:

HP:100,MP:50
(HP:100,MP:50)
HP=100;MP=50
自动转换为合法 JSON:

```csharp
string fixedJson = TextsUtil.NormalizeJsonString("HP:100,MP:50");
// 输出:{"HP":100,"MP":50}

5.2 清洗 Excel 中的任意数据字符串

支持:

  • 修正全角符号
  • 自动补全 JSON
  • 自动修正括号
  • 移除空格、换行
  • 支持日期格式识别
TextsUtil.NormalizeDataString("(HP:100,MP:50)");
// 输出:{"HP":100,"MP":50}

6. 使用场景

TextsUtil 常用于以下场景:

  • Excel 配表读取(数值、数组、键值对、字典解析)
  • UI 文本格式化(倒计时、资源展示、大数显示)
  • 数据工具链(Editor 与 Runtime)
  • JSON 修复与 Excel 自由填表兼容
  • 通用字符串预处理

它是数据系统与 UI 系统等模块中最常用的基础工具之一。