string str = "音乐,ASX天堂sefrt,tt文件,我是中国人,我要去美国度假,成功,中华人民共和国";
            List<string> results = new List<string>();
            StringBuilder buff = new StringBuilder();
            foreach (string word in str.Split(new char[] { ',' }))
            {
                buff.Append(word);
                if (buff.Length >= 20)
                {
                    results.Add(buff.ToString());
                    buff.Remove(0, buff.Length);
                }
            }
            if (buff.Length > 0) results.Add(buff.ToString());
            return String.Join("|", results.ToArray());

解决方案 »

  1.   

    题看错了,上面的不对string str = "音乐,ASX天堂sefrt,tt文件,我是中国人,我要去美国度假,成功,中华人民共和国";
                List<string> results = new List<string>();
                StringBuilder buff = new StringBuilder();
                foreach (string word in str.Split(new char[] { ',' }))
                {
                    if (buff.Length + word.Length > 20)
                    {
                        results.Add(buff.ToString());
                        buff.Remove(0, buff.Length);
                    }
                    buff.Append(word);
                }
                if (buff.Length > 0) results.Add(buff.ToString());
                return String.Join("|", results.ToArray());