ということをやりたかったので、つくってみた。
こういうのは正規表現とかで使うと柔軟にできるんだろうけど、
数字(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 件のコメント:
コメントを投稿