110,533
社区成员
发帖
与我相关
我的任务
分享
string str = @"刘德华#200#300#400
成龙#89#30
李连杰#50#1400#1
周星驰#110#20#60#70 ";
foreach (Match match in Regex.Matches(str, @"[^#\d]+(?<num>[#\d]+)"))
{
int sum=0;
string count = Regex.Replace(match.Groups["num"].Value, @"#(\d+)",
new MatchEvaluator(delegate(Match m)
{
sum += int.Parse(m.Groups[1].Value);
return m.NextMatch().Success ? "" : "#" + sum.ToString();
}));
str = str.Replace(match.Groups["num"].Value, count);
}
Console.WriteLine(str);
using System;
class Program
{
static string Convert(string s)
{
string[] t = s.Split('#');
if (t.Length < 2) return s;
int i;
int sum = 0;
foreach (string u in t)
{
if (int.TryParse(u, out i)) sum += i;
}
return string.Format("{0}#{1}", t[0], sum);
}
static void Main()
{
string s = @"刘德华#200#300#400
成龙#89#30
李连杰#50#1400#1
周星驰#110#20#60#70";
foreach (string t in s.Split('\n'))
{
Console.WriteLine(Convert(t));
}
}
}
/* 程序输出:
刘德华#900
成龙#119
李连杰#1451
周星驰#260
*/