您的位置:首页 > 其它

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

2011-07-15 11:39 211 查看
方法一:


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");


}




}


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