如何将数字: 289506152200
以每两位数进行倒序排列,如,00:22:15:06:95:28!
用什么方法都可以!!

解决方案 »

  1.   

    如果是vs2008或更高版本private static void TestRegex13()
    {
        string yourStr = "289506152200";
        string result = string.Concat(Regex.Split(yourStr, @"(?<=\d{2})(?=\d{2})").Reverse());
        Console.WriteLine(result);
    }
      

  2.   

    居然,写错了。忽略1楼回复。用这个private static void TestRegex13()
    {
        MatchCollection mc = Regex.Matches("289506152200", @"\d{2}");
        StringBuilder builder = new StringBuilder();
        foreach (Match m in mc)
        {
            builder.Insert(0, m.Value);
        }
        Console.WriteLine(builder.ToString());
    }
      

  3.   

    vs2008及以上版本,抛砖引玉吧。贴个蹩脚的linq+regex的。private static void TestRegex14()
    {
        string result = string.Concat((from m in Regex.Matches("289506152200", @"\d{2}").Cast<Match>() select m.Value).ToArray().Reverse());
        Console.WriteLine(result);
    }等linq高手
      

  4.   


    string s = "289506152200";
    StringBuilder sb = new StringBuilder();
    for (int i =s.Length-1; i>-1; i-=2)
    {
    sb.Append(s[i - 1]);
    sb.Append(s[i]);
    sb.Append(":");
    }
    if (sb.Length > 1)
    {
    sb.Remove(sb.Length - 1, 1);
    }
    Console.WriteLine(sb.ToString());

      

  5.   

    第一想法总想不到用正则!!
            string a = "289506152200";
            string b="";
            for (int i = a.Length-2; i >= 0; i=i-2)
                 b += a.Substring(i, 2);
            Response.Write(b);
      

  6.   

    没必要也不推荐用正则,5楼的逆排序可以,不过效率不怎么样,显然使用char[]来将字符串倒序填充的效率才是最高的,最后输出字符串只要利用char[]创建一个新的字符串即可。