当前位置: 代码迷 >> C# >> 一条短信截取成多条,并加上公司名称 用递归吗? 如何用呢
  详细解决方案

一条短信截取成多条,并加上公司名称 用递归吗? 如何用呢

热度:9   发布时间:2016-05-05 03:00:23.0
一条短信截取成多条,并加上公司名称 用递归吗? 怎么用呢?

短信每条信息最大长度为147
如果有个短信大于147 则截取成多条,每条后加标识"[1/2]公司名称"
如:第一条:"您的工资是1000元,其中......[1/2]XX科技有限公司"
第二条:".......奖金:300,请假-100,总工资:3000,[2/2]XX科技有限公司"
注:短信内容本身是没有"[1/2]xx公司名称"的

------解决思路----------------------
长度呢?按什么规则截?如果只是随便截的话,那你循环下不就可以了?
int splitNum=50;
for(var i=0;i<str.Length;i++)
{
       var startIndex = i*splitNum;
       var leftLength = str.Length - startIndex;
       if(leftLength>0)
       {
       var tmp = str.Substring(startIndex,Math.Min(leftLength,splitNum));//这个就是截取到的一段文字
       }
}

------解决思路----------------------
string txt = @"您的工资是1000元,其中奖金100元,基本工资200元,卖血费300元,保密费400元,有问题请自行投河,GoodBye!!!";
string patten = @"(?<=^(?:.{30})+)";
foreach (var str in Regex.Split(txt, patten))
{
    Console.WriteLine(str);
}

或者用正则直接Split也可以
  相关解决方案