ということをやりたかったので、つくってみた。
こういうのは正規表現とかで使うと柔軟にできるんだろうけど、
数字(0-9)の連続を1グループとして、それ以外の部分も1グループとして、分割して返してくれる。数字しか識別しないので、空白で区切りとかはされない。もちろん数字と数字の間に空白があれば区切られるけど。
いつもの通り、使うときは自己責任で。
static class MyExt
{
public static string[] SplitIsNumber(this string text)
{
if (string.IsNullOrEmpty(text))
{
return (new string[0]);
}
List<string> list = new List<string>();
int start = 0;
bool prev = char.IsNumber(text[start]);
for (int i = start + 1; i < text.Length; i++)
{
bool crnt = char.IsNumber(text[i]);
if (prev == crnt)
{
continue;
}
list.Add(text.Substring(start, i - start));
start = i;
prev = crnt;
}
if (start != text.Length)
{
list.Add(text.Substring(start, text.Length - start));
}
return (list.ToArray());
}
}

0 件のコメント:
コメントを投稿