要求将一个字符串的1、2位字符颠倒,3、4位字符颠倒,5、6位字符颠倒,7、8位字符颠倒,9、100位字符颠倒,按照这样的规律将字符串的每2位字符做颠倒,例如下面的字符串1234567890
2143658709
------------------
1234567890ABCDEFG
2143658709BADCFEG
------------------
2143658709BADCFEG
1234567890ABCDEFG
2143658709
------------------
1234567890ABCDEFG
2143658709BADCFEG
------------------
2143658709BADCFEG
1234567890ABCDEFG
{
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();
}
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();
}
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();
}
这个才是..上面那个多了个大括号..这复制.....
{
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 */
}
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());
}
{
return string.Join("",Regex.Split(str,"(?<=\\G.{2})").Select(x=>new string(x.ToCharArray().Reverse().ToArray())).ToArray());
}注意修改一下正则,保证能处理所有字符串
Regex reg = new Regex(@"(.)(.)");
string result = reg.Replace(yourStr, "$2$1");