要求将一个字符串的1、2位字符颠倒,3、4位字符颠倒,5、6位字符颠倒,7、8位字符颠倒,9、100位字符颠倒,按照这样的规律将字符串的每2位字符做颠倒,例如下面的字符串1234567890
2143658709
------------------
1234567890ABCDEFG
2143658709BADCFEG
------------------
2143658709BADCFEG
1234567890ABCDEFG

解决方案 »

  1.   

    streamreader读取每一行,自己判断奇偶数,然后互换,最后在写回去
      

  2.   

            private string ProcessString(string s)
            {
                StringBuilder Builder = new StringBuilder("");
                for (int n = 0; n < s.Length; n++)
                {
                    if (n % 2 == 0) Builder.Append(s[n]);
                    else Builder.Insert(Builder.Length - 1, s[n]);
                }
                return Builder.ToString();
            }
      

  3.   


      public string Dee(string str)
            {
                string a = str;
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i <= a.Length - 1; i++)
                {
                    if (i + 1 != a.Length)
                    {
                        sb.Append(a[i + 1]);
                        sb.Append(a[i]);
                        i = i + 1;
                    }
                    else
                    {                }
                    {
                        sb.Append(a[i]);
                    }
                }
                return sb.ToString();
            }
      

  4.   


    public string Dee(string str)
            {
                string a = str;
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i <= a.Length - 1; i++)
                {
                    if (i + 1 != a.Length)
                    {
                        sb.Append(a[i + 1]);
                        sb.Append(a[i]);
                        i = i + 1;
                    }
                    else
                    {
                        sb.Append(a[i]);
                    }
                    
                }
                return sb.ToString();
            }
    这个才是..上面那个多了个大括号..这复制.....
      

  5.   

    void Main()
    {
    var list=new List<string>{"1234567890","1234567890ABCDEFG","2143658709BADCFEG"};
    list.ForEach(l=>
    {  
    Console.WriteLine("{0} \t {1}",l,string.Join("",Regex.Split(l,"(?<=\\G\\d{2})").Select(x=>new string(x.ToCharArray().Reverse().ToArray())).ToArray()));
    });
     /*
    1234567890   2143658709
    1234567890ABCDEFG   2143658709GFEDCBA
    2143658709BADCFEG   1234567890GEFCDAB  */
    }
      

  6.   

    封装起来:
    void Main()
    {
    var list=new List<string>{"1234567890","1234567890ABCDEFG","2143658709BADCFEG"};
    list.ForEach(l=>
    {  
    Console.WriteLine("{0} \t {1}",l,ReverseString(l));
    });
     /*
    1234567890   2143658709
    1234567890ABCDEFG   2143658709GFEDCBA
    2143658709BADCFEG   1234567890GEFCDAB  */
    }
    string ReverseString(string str)
    {
       return string.Join("",Regex.Split(str,"(?<=\\G\\d{2})").Select(x=>new string(x.ToCharArray().Reverse().ToArray())).ToArray());
    }
      

  7.   

    string ReverseString(string str)
    {
       return string.Join("",Regex.Split(str,"(?<=\\G.{2})").Select(x=>new string(x.ToCharArray().Reverse().ToArray())).ToArray());
    }注意修改一下正则,保证能处理所有字符串
      

  8.   

    正则不需求那么麻烦啊
    Regex reg = new Regex(@"(.)(.)");
    string result = reg.Replace(yourStr, "$2$1");