今天,是第一次写文章,希望自己以后可以坚持下去,也希望自己的经验带给更多人好处。
有这样一个问题,有时候我明年会需要替换字符串中的数字,比如"213424113"中 要替换所有的1为26,
结果期望是"2263424113",如果用.net string的 Replace方法 结果会是"226342426263",如何准确的替换呢?
经过我和几个朋友研究,用以下的代码就可以了,与大家分享

 1/// <summary>
 2/// 替换字符串中的数字
 3/// </summary>
 4/// <param name="str">字符串</param>
 5/// <param name="oldvalue">旧数字</param>
 6/// <param name="newvalue">新数字</param>
 7/// <returns>替换后的字符串</returns>

 8public string ReplaceInt(string str,string oldvalue,string newvalue)
 9{
10            
11    string res = "";
12    string  c = oldvalue;
13    char back , next;
14    string r = newvalue;
15    for(int i = 0 ; i < str.Length ; i++)
16    {
17        if ( i + c.Length <= str.Length && str.Substring(i, c.Length) == c)
18        {
19                    back = (i == 0 ? '*' : str[i - 1]);
20                    next = (i + c.Length == str.Length  ?  '*' : str[i + c.Length]);
21                    if ((back >= '0' && back<= '9'|| (next >= '0' && next<= '9'))
22                    {
23                        res += str[i];
24                        continue;
25                    }

26
27                    res += r;
28                    i += c.Length -1;
29                    continue;
30                }

31                res += str[i];
32            }

33            return res;
34        }