• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

一个由字母组成的字符串,最长14位,要求每隔2位加一个逗号,最左边不加,求一个好的算法

贝克汉鸭 中国长城研究院 人工智能所 高级软件架构师  2008-06-21 04:25:49
一个由字母组成的字符串,最长14位,要求每隔2位加一个逗号,最左边不加,求一个好的算法

例:“abcdefg” 返回“a,bc,de,fg”
...全文
189 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
root_ 2008-06-21

string test = "abcdefg";
string result = System.Text.RegularExpressions.Regex.Replace(yourStr, @"(?<!^)[a-zA-Z]{2}", ",$0", RegexOptions.RightToLeft);


如果是用1楼的,需要改下

string s = "abcdefg";
for (int i = s.Length - 2; i > 0; i -= 2)
s = s.Insert(i, ",");
回复
maddemon 2008-06-21
            string str = Console.ReadLine();
char[] arr = str.ToCharArray();
string newstr = string.Empty;
for (int i = 0; i < arr.Length; i++)
{
newstr += arr[i].ToString();
if ((i + 1) % 2 == 0)
{
newstr += ",";
}
}
if (newstr.Substring(newstr.Length - 1, 1) == ",")
newstr.Substring(0, newstr.Length - 1);
Console.WriteLine(str);
Console.ReadLine();

我的方法比较笨。。。 研究insert中。。。
回复
gomoku 2008-06-21

static String AddSeperators(string input)
{
if (string.IsNullOrEmpty(input)) return input;

StringBuilder sb = new StringBuilder();
sb.Append( input.Substring(0, 2 - input.Length % 2) );
for (int i = 2 - input.Length % 2; i < input.Length; i += 2)
{
sb.AppendFormat(",{0}{1}", input[i], input[i + 1]);
}
return sb.ToString();
}
回复
xzf158 2008-06-21
[Quote=引用 1 楼 yezie 的回复:]
string s = "abcdefg";
for(int i=s.length-3; i>0; i-=2)
s.Insert(i, ",");
试试
[/Quote]
关注一下
回复
yezie 2008-06-21
string s = "abcdefg";
for(int i=s.length-3; i>0; i-=2)
s.Insert(i, ",");
试试
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2008-06-21 04:25
社区公告

让您成为最强悍的C#开发者