当前位置:编程学习 > C#/ASP.NET >>

C#字符串 修改替换问题

代码如下:

string str1="1(3,2)|2(2,1)"; 现在想要把括号里面的数字替换,3替换成0,2替换成1,1替换成3; 最终结果是 str1="1(0,1)|2(1,3)";


各位大侠帮帮忙!! 
--------------------编程问答-------------------- 你可以取出(3,2)和(2,1),然后把3替换成0,2替换成1,1替换成3 --------------------编程问答--------------------  string str1 = "1(3,2)|2(2,1)";
            string str = Regex.Replace(str1, @"(?<=\()\d+(,\d+)*(?=\))", delegate(Match m)
            {
                Func<string, string> fun = (t) =>
                {
                    switch (t)
                    {
                        case "1": return "3";
                        case "2": return "1";
                        case "3": return "0";
                        default: return t;
                    }
                };
                return string.Join(",", m.Value.Split(',').Select(tt => fun(tt)).ToArray());
            });
            Console.WriteLine(str); --------------------编程问答-------------------- 2楼犀利... --------------------编程问答-------------------- 你多套几层Replace就行了,不过2楼的方法似乎很犀利哦,可以试试 --------------------编程问答--------------------
string str1 = "1(3,2)|2(2,1)";
Regex reg = new Regex(@"(?<=\((?:\d+,)*)\d+(?=(?:,\d+)*)");
string result = reg.Replace(str1, delegate(Match m) { switch (m.Value) { case "3": return "0"; case "2": return "1"; case "1": return "3"; } return m.Value; });
richTextBox2.Text = result;
--------------------编程问答-------------------- 那是正则吗? --------------------编程问答-------------------- 2 楼 5楼都是大神啊。都行。。谢谢了 --------------------编程问答-------------------- string str1="1(3,2)|2(2,1)";
string result =str1.Replace("3,2","0,1").Replace("2,1","1,3"); --------------------编程问答-------------------- 正则表达式就可以把 --------------------编程问答-------------------- 标记一下 --------------------编程问答-------------------- mark 标记 --------------------编程问答-------------------- 折服了。本来已经写好了,打算传上来呢,看了2楼和5楼,我觉得还是别贴我的代码了。支持一下吧 --------------------编程问答-------------------- 除
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,