您的位置:首页 > 其它

交换两个指定位置字符的4种方法

2012-01-17 11:32 330 查看
 
方法一:

static void Main()

        ...{

            string s = "123456789";

            SwapChar(ref s, 3, 6);

            Console.Write(s.ToString());

        }

        static void SwapChar(ref string s, int i1, int i2)

        ...{

            char temp = s[i1];

            char temp1 = s[i2];

            s = s.Remove(i1, 1).Insert(i1, temp1.ToString());

            s = s.Remove(i2, 1).Insert(i2, temp.ToString());

        }

方法二:

 static void Main()

        ...{

            string s = "123456789";

            //SwapChar(s, 3, 6);

            Console.Write(SwapChar(s, 3, 6).ToString());

        }

        static string SwapChar(string s, int p1, int p2)

        ...{

            if ((p1 == p2) || ((p1 < 0) || (p2 < 0))) return s;

            if ((p1 >= s.Length) || (p2 >= s.Length)) return s;

            char[] vChars = s.ToCharArray();

            vChars[p1] = (char)(vChars[p2] | (vChars[p2] = vChars[p1]) & 0);

            return new string(vChars);

        }

方法三:

static void Main()

        ...{

            string s = "123456789";

            Console.Write(SwapChar(s, 3, 6).ToString());

        }

        public static string SwapChar(string str, int a, int b)

        ...{

            char[] newStr = str.ToCharArray();

            newStr[a] = str[b];

            newStr[b] = str[a];

            return new string(newStr);

        }

 

方法四:

using System;

using System.Collections.Generic;

using System.Text;

using System.Text.RegularExpressions;

namespace ConsoleApplication1

...{

    class Program

    ...{

        static void Main()

        ...{

            string s = "123456789";

            Console.Write(SwapChar(s, 3, 6).ToString());

        }

        static string SwapChar(string s, int p1, int p2)

        ...{

            if (p1 > p2) ...{ int p = p1; p1 = p2; p2 = p; }

            return Regex.Replace(s, "^(.{" + p1 + "})(.)(.{" + (p2 - p1 - 1) + "})(.)(.*)$", "$1$4$3$2$5");

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string class
相关文章推荐