gpt4 book ai didi

c# - c# 中是否有像 Java 中那样的 splitByCharacterType 方法?

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:03 24 4
gpt4 key购买 nike

在 Java 中有一个方法 splitByCharacterType它采用一个字符串,例如 0015j8*(,并将其拆分为 "0015","j","8","*","("。是在 c# 中有这样的内置函数吗?如果没有,我将如何构建一个函数来执行此操作?

最佳答案

public static IEnumerable<string> SplitByCharacterType(string input)
{
if (String.IsNullOrEmpty(input))
throw new ArgumentNullException(nameof(input));

StringBuilder segment = new StringBuilder();
segment.Append(input[0]);
var current = Char.GetUnicodeCategory(input[0]);

for (int i = 1; i < input.Length; i++)
{
var next = Char.GetUnicodeCategory(input[i]);
if (next == current)
{
segment.Append(input[i]);
}
else
{
yield return segment.ToString();
segment.Clear();
segment.Append(input[i]);
current = next;
}
}
yield return segment.ToString();
}

用法如下:

string[] split = SplitByCharacterType("0015j8*(").ToArray();

结果是 "0015","j","8","*","("

我建议您将其实现为扩展方法。

关于c# - c# 中是否有像 Java 中那样的 splitByCharacterType 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com