请教c#字符串取反string a1 = "A1B2C3D4";
想达到取反的结果是:D4C3B2A1请教写个详细代码,达到以上要求。谢谢C#

解决方案 »

  1.   

    static void Main(string[] args)
            {
                string a1 = "A1B2C3D4";
                char[] rs = a1.ToCharArray();
                char[] result = rs.Reverse().ToArray<char>();
                Console.WriteLine(result);
            }
      

  2.   


                string a1 = "A1B2C3D4";
                string[] arr = a1.Where((x, y) => y % 2 == 1).Select((v, i) => Convert.ToString(a1[2 * i]) + Convert.ToString(a1[2 * i + 1])).Reverse().ToArray();
      

  3.   

           static void Main(string[] args)
            {
                string a1 = "A1B2C3D4";
                string opposite="";
                int len = a1.Length;
                int pos = len-1;
                for (int i = 0; i < len; i++)
                { 
                    opposite += a1.Substring(pos,1);
                    pos--;
                }
                Console.WriteLine(opposite);
                Console.ReadLine();
            }
      

  4.   

    这个是在 点击按钮之内的程序
    private void button2_Click(object sender, EventArgs e)

    string a1 = "A1B2C3D4";
                char[] rs = a1.ToCharArray();
                char[] result = rs.Reverse().ToArray<char>();
                Console.WriteLine(result);
    }所以,rs.Reverse()编译器,不能通过
    还是出错呢??
    有什么好方法吗?
      

  5.   

      string a1 = "A1B2C3D4";          
                string b1 = string.Empty;
                for (int i = a1.Length - 1; i >= 0; i--)
                {
                    b1 += a1[i];
                }
      

  6.   


    那是泛型,你用的是.net framework 2.0版本?用下面这个
     string a1 = "A1B2C3D4";
                char[] rs = a1.ToCharArray();
                char[] result = new char[rs.Length];
                for (int i = 0; i < rs.Length; i++)
                {
                    result.SetValue(rs[rs.Length - i], i);
                }
                Console.WriteLine(result);
      

  7.   

    您们全部做错程序了。
    看好需求:本来是:A1B2C3D4
    需求结果是:D4C3B2A12位2位反取。
    如果按照您们的程序就成了倒序了。
      

  8.   

    请教各位了。
    string a1 = "A1B2C3D4"; 
    取反想达到的效果是:D4C3B2A1并不是:4D3C2B1A 得看清楚了啊。
      

  9.   

     static void Main(string[] args)
            {
                string a1 = "A1B2C3D4";
                string[] temp = new string[a1.Length / 2];
                for (int i = 0, j = 0; i < a1.Length && j <= a1.Length; i = i + 2, j++)
                {
                    temp[j] = a1[i] + "" + a1[i + 1];
                }            string result = string.Empty;
                for (int i = temp.Length - 1; i >= 0; i--)
                {
                    result += temp[i];
                }            Console.WriteLine(result);
            }
      

  10.   

    substring()用这个方法往后面一个循环获取数据就行了
      

  11.   

    static void Main(string[] args)
            {
                string a1 = "A1B2C3D4";
                char[] arrA = new char[8];
                char[] arrB = new char[8];            arrA = a1.ToCharArray();            for (int i = 0; i < 8; i += 2)
                {
                    arrB[i] = arrA[6 - i];
                    arrB[i + 1] = arrA[7 - i];
                }            foreach (char b in arrB)
                {
                    Console.Write(b);
                }
                Console.Read();
            }
    就是颠倒字符串操作的思路,只不过一次操作两位
      

  12.   


                string a1 = "A1B2C3D4";
                string[] arr = a1.Where((x, y) => y % 2 == 1).Select((v, i) => Convert.ToString(a1[2 * i]) + Convert.ToString(a1[2 * i + 1])).Reverse().ToArray();
      

  13.   


     Console.Read();
    这个读取错误
      

  14.   


                string a1 = "A1B2C3D4";
                string[] arr = a1.Where((x, y) => y % 2 == 1).Select((v, i) => Convert.ToString(a1[2 * i]) + Convert.ToString(a1[2 * i + 1])).Reverse().ToArray();

    编译不了,代码不知那错
      

  15.   


     Console.Read();
    这个读取错误
    其实foreach开始,后面可以不要,真正有用的就是那个循环,后面只是为了把结果显示出来
      

  16.   

    string str = "A1B2C3D4";
                int len = str.Length;
                int x = len;
                string str2 = "";
                for (int i = 0; i < len / 2; i++)
                {
                    x = x - 2;
                    str2 = str2 + str.Substring(x,2);
                }
                this.da.Text = str2;
      

  17.   

    .net 3.5:
    string s = "A1B2C3D4";
    string r = Regex.Replace(new string(s.ToCharArray().Reverse().ToArray()), @"(.)(.)", "$2$1");
    Console.WriteLine(r);
    .net 2.0:
    string s = "A1B2C3D4";
    char[] chars = s.ToCharArray();
    Array.Reverse(chars);
    string r = Regex.Replace(new string(chars), @"(.)(.)", "$2$1");
    Console.WriteLine(r);
      

  18.   

    转换成数组,for循环,偶数进入,偶数位和前一位进行互换
      

  19.   

     string strs = "1A2B3C4D";
                string ss = "";
                for (int i = strs.Length - 1; i >= 0; i -= 2)
                {
                    ss += strs[i].ToString() + strs[i - 1].ToString();
                }
      

  20.   

    请问一下,,你们从开始的编错为倒序,到改成两个两个倒序,如果给的是A11B22C3D4怎么办?我估计他要的是D4C3B22A11.你们的编程思想是解决他说的事,而不是解决问题么。
      

  21.   

    string a1 = "A1B2C3D4";
    var data = Convert.ToInt32(a1, 16);
    data = System.Net.IPAddress.HostToNetworkOrder(data);
    a1 = data.ToString("X");
      

  22.   

    楼主,解决了吗? string strs = "1A2B3C4D";
                        string ss = "";
                        for (int i = strs.Length - 2; i >= 0; i -= 2)
                        {
                            ss += strs[i].ToString() + strs[i+1].ToString();
                        }
      

  23.   

    经过验证证明,只有3位朋友写对程序。可以结贴了14楼的程序对的,不过代码复杂了些!string a1 = "A1B2C3D4";
                string[] temp = new string[a1.Length / 2];
                for (int i = 0, j = 0; i < a1.Length && j <= a1.Length; i = i + 2, j++)
                {
                    temp[j] = a1[i] + "" + a1[i + 1];
                }            string result = string.Empty;
                for (int i = temp.Length - 1; i >= 0; i--)
                {
                    result += temp[i];
                }
                this.Text = result;23楼也写对了,程序简单了一些。
    string str = "A1B2C3D4";
                int len = str.Length;
                int x = len;
                string str2 = "";
                for (int i = 0; i < len / 2; i++)
                {
                    x = x - 2;
                    str2 = str2 + str.Substring(x, 2);
                }
                this.Text = str2;34楼,程序也对了。并且写的最棒,最简化的就是这个了。
    特别值得推荐,简单明了。
    string strs = "1A2B3C4D";
                string ss = "";
                for (int i = strs.Length - 2; i >= 0; i -= 2)
                {
                    ss += strs[i].ToString() + strs[i + 1].ToString();
                }
                this.Text = ss;