首页 新闻 会员 周边

在字符串里多次替换

0
[已解决问题] 解决于 2013-10-14 17:21
string str = "1,2,3,4,5,6";
//如何把1替换成‘一年级’,2替换成‘二年级’....依次类推

//结果 “一年级,二年级,三年级,四年级,五年级,六年级”

求帮助??????????????????????????

C#
梁 均的主页 梁 均 | 初学一级 | 园豆:164
提问于:2013-10-14 15:20
< >
分享
最佳答案
0
        public static string RemoveSpecialChar(this string str)
        {
           var dictionary = new Dictionary<char, string>()
            {
                {'1',"一年级"},
                {'2','二年级'}
            };
            var stringBuilder = new StringBuilder(str.Length);
            for (var i = 0; i < str.Length; i++)
            {
                var c = str[i];
                if (dictionary.ContainsKey(c))
                    stringBuilder.Append(dictionary[c]);
                else
                   stringBuilder.Append(c);
            }
            return stringBuilder.ToString();
        }

类似这样,比多次使用Replace性能好些。

奖励园豆:5
李永京 | 老鸟四级 |园豆:3114 | 2013-10-14 15:48

ok  谢谢了

梁 均 | 园豆:164 (初学一级) | 2013-10-14 17:20
其他回答(1)
0
 static Dictionary<string, string> _numberCN = new Dictionary<string, string>() { 
                        { "1", "" },
                        { "2", "" },
                        { "3", "" },
                        { "4", "" },
                        { "5", "" },
                        { "6", "" },
                        { "7", "" },
                        { "8", "" },
                        { "9", "" },
                        { "0", "" }
                    };
        static void Main(string[] args)
        {         
            string str = "1,2,3,4,5,6";
            string[] _strArray  = str.Split(',');
            StringBuilder _sb = new StringBuilder();
            foreach (string _char in _strArray)
            {
                if (_numberCN.ContainsKey(_char))
                {
                    if (_sb.Length > 0)
                    {
                        _sb.Append(",");
                    }
                    _sb.Append(_numberCN[_char] + "年级");
                }
                else
                {

                }
            }
            
            Console.WriteLine(_sb);
            Console.ReadLine();
        }

li-peng | 园豆:954 (小虾三级) | 2013-10-14 16:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册