Java中有一个方法按字符类型分割例如,需要一个字符串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","*","("
我建议您将其作为扩展方法来实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)