今天早上一个朋友请教我给一串字符串,截取数(比如3,截取数可自定义) 每3个截取一次,截取到后面小于3位的一样保留到字符串数组里。
想了一下 写了一个通用方法,记录一下,给有用的朋友参考(不喜勿喷,如有更优方案的小伙伴希望能留言指导一下):
static void Main(string[] args) { string d = "努力的人最有魅力"; var o= reback(d,3); Console.ReadLine(); } public static List<string> reback(string str,int first) { String shortstr=string.Empty, longstr = string.Empty; List<string> arr = new List<string>(); if (string.IsNullOrWhiteSpace(str)) { return arr; }else { var len = str.Length; var intAv = str.Length / first; if(len % first != 0){ intAv = intAv + 1; } var intC = first; for (int i = 0; i < intAv; i++) { if(i == intAv-1||intC <= len) { if (i != 0) { if (i == intAv-1) { var o = str.Substring(intC, len -intC); if (!string.IsNullOrWhiteSpace(o)) { arr.Add(o); } } else { arr.Add(str.Substring(intC, first)); } intC = intC+first; } else { arr.Add(str.Substring(0, first)); } } } } return arr; }