按照指定长度切分字符串导出数组
公有示例参数变量,正则表达匹配符合字符
string small = "1234567890abcde的劳动法的空间啦拉客服1234567890ABCDe";
//正则替换掉不属于十六进制字符
small = Regex.Replace(small, "[^a-fA-F0-9]", "");
//切分长度
int pageSize = 2;
//初始化列表
var array0 = new List<string>();
var array1 = new List<string>();
方法一
var pageCount = (int)Math.Ceiling(1.0 * small.Length / pageSize);
for (int i = 0; i < pageCount; i++)
{
//字符串操作形式
//跳过指定数量元素,返回剩余元素;从头开始返回指定数量的元素
var bb = small.Skip(i * pageSize).Take(pageSize).ToArray();
//添加到列表
array0.Add(new string(bb));
}
string [] s0 = array0.ToArray();
例如:small =“1234567”时
输出数组s0为 12 34 56 7数组长度为7
方法二
int k = 0;
while (small.Length > k)
{
//检索字符串; ;返回最小值
var str = small.Substring(k, Math.Min(pageSize, small.Length - k));
//添加到列表
array1.Add(str);
//步进分割长度
k = k + pageSize;
}
例如:small =“1234567”时
输出数组为 12 34 56 7数组长度为7
方法三 利用正则表达式匹配项切分字符串,单是会损失单字符
//正则表达匹配项集合
MatchCollection matchCollection= Regex.Matches(small, @"\w{" + 2 + "}");
//正则表达式结果,将序列中的每个元素(正则表达式匹配集合)投影到新表单
string[] ARr= matchCollection.Cast<Match>().Select(m => m.Groups[0].Value).ToArray();
例如:small =“1234567”时
输出数组为 12 34 56 数组长度为3
//以%分割字符串,并去掉空字符
//以%分割字符串,并去掉空字符
string[] chars = hs.Split(new char[] { '%' }, StringSplitOptions.RemoveEmptyEntries);