/*举例:Name = sample12 , count = 3
应该返回List<string> = {sample13,sample14,sample15}
判断字符串最后部分的数字时的原则:
1).忽略数字部分外的空格:即"sample 12","sample12 ","sample 12 "都认为数字是12;而"sample1 2"则认为是2;
2).最后一位不是空格也不是数字,则认为数字是0;如"sample 12a","sample12b","sample 12 b8e"都认为数字是0;*/
List<string> 生成 = new List<string>();
Func<string, int> 取数字 = delegate(string 信息)
{
string 字 = "";
int 量 = 信息.Length;
if (!Char.IsDigit(信息[--量]))
字 = "0";
else
do { if (Char.IsDigit(信息[量])) 字 = 字.Insert(0, 信息[量].ToString()); else break; } while (--量 > 0);
return int.Parse(字);
};
Func<string[], int> 转数字 = delegate(string[] 信息)
{
int 判断 = 0, 检 = 0;/*如果转换成功则输出转换值否则等于设定值0*/
foreach (string 信 in 信息)
if (信 != "") { int.TryParse(信, out 检); ++判断; }/*包含对多空格处理*/
return 判断 < 2 ? 取数字(信息[0]) : 检;
};
Func<string, int, List<string>> 符串最后部分的数字 = delegate(string 信息, int 数量)
{
int 数 = 0, 序 = 0;
string[] 拆分 = 信息.Split(' ');
序 = 数 = (拆分.Length > 1) ? 转数字(拆分) : 取数字(拆分[0]);
do
{
生成.Add(数 > 0 ? 信息.Replace(数.ToString(), (++序).ToString()) : 信息 + (++序).ToString());
} while (--数量 > 0);
return 生成;
};
符串最后部分的数字("sample12 ", 4);
foreach (string 信息 in 生成)
Console.WriteLine(信息);
截取字符串的前后子串:
string aa = "1231233";
string bb = aa.Remove(aa.Length - 1);/*保留前面的字符*/
string cc = aa.Substring(3);/*保留后面的字符*/
博客围绕字符串处理问题展开,给出示例,如输入Name = sample12,count = 3,应返回{sample13,sample14,sample15}。还说明了判断字符串最后部分数字的原则,如忽略数字部分外空格等,同时提及截取字符串前后子串。
21

被折叠的 条评论
为什么被折叠?



