有一个字符串,按每5个byte就添加1个|进去。如果遇到已经有|了,那么就从|后面再开始计算5个byte再插|进去。
例如
123456|7890abcdefg调整后就是
12345|6|7890a|bcdef|g我陷入了纠结中……寻求好心人帮助^^
例如
123456|7890abcdefg调整后就是
12345|6|7890a|bcdef|g我陷入了纠结中……寻求好心人帮助^^
解决方案 »
- Convert.ToDouble异常
- 用fiddler看到的特殊的包
- 寻lxcnn与ojlovecd帮忙
- 怎样改变按钮控件的形状?
- flowlayout中控件距离的问题
- C/S 三层架构,(用户层,业务层,数据库)
- 动态表中的时间控件如何在保存时更改时间格式
- 请问:我自己写了一个.ocx,但运行时出错,大家帮忙看看
- CalendarExtender的显示出现问题
- c# SendMessage模拟鼠标事件,求解啊
- treeview单击一个节点后,就获取节点的tag属性值,然后根据tag值执行程序,要用哪个事件呢?(AfterSelect好象只有第一次有效呀?)
- 【求教】下面的这些C#代码是什么意思?
string str = "123456|7890abcdefg";
string[] temp = str.Split('|');
for (int i = 0; i < temp.Length; i++)
{
if (temp[i].Length > 5)
{
int count = temp[i].Length / 5;
for (int j = 0; j < count; j++)
temp[i] = temp[i].Insert((j + 1) * 5 + j, "|");
}
}
string result = string.Join("|", temp);
Console.WriteLine(result);
string result = Regex.Replace(str, @"(((?!\|).){5})", "$1|");
Response.Write(result);
//结果:12345|6|7890a|bcdef|g
string result = re.Replace("123456|7890abcdefg", "$1|");
string result = Regex.Replace(str, @"(((?!\|).){3})", "$1|");
Response.Write(result);
string result = Regex.Replace(str, @"(((?!\|).){3})", "$1|");
$1为第一个捕获到的组
也就是把str按那个正则替换为$1|
也怪我没说清楚,我的原意是想按每5个byte插入一个|,如果第5位正好是汉字,那么就换成在第6位插入|,比如:“这里有很多好心人”,改变后是“这里有|很多好|心人”
string newstr = "";
int splitCount = 0;
foreach (var c in str)
{
newstr += c.ToString();
byte[] data = System.Text.Encoding.
GetEncoding("GB2312").GetBytes(c.ToString());
splitCount += data.Length;
if (splitCount >= 5)
{
newstr += "|";
splitCount = 0;
}
}
Console.WriteLine(newstr);
// 这里1|有很多|好心人|!