static void Main(string[] args)
{
string a = "ABcd1艾福7";
string b = Regex.Replace(a, @"(.)(.?)", MatchConvert);
Console.ReadKey();
}
private static string MatchConvert(Match m)
{
byte[] n = System.Text.Encoding.UTF8.GetBytes(m.Groups[1].Value);
string r = string.Empty;
if (n[0] >= 65 && n[0] <= 90)
{
r += m.Groups[1].Value.ToLower();
}
else if (n[0] >= 97 && n[0] <= 122)
{
r += m.Groups[1].Value.ToUpper();
}
else if (n[0] >= 48 && n[0] <= 57)
{
r += "\r\n";
}
else
{
r += "1";
}
return r + m.Groups[2].Value;
}
基本考点是
if()
else if()
else
所以基本写法是
string str = "ABcd1艾福7";
StringBuilder sb = new StringBuilder();
using (TextWriter writer = new StringWriter(sb))
{
for (int i = 0; i < str.Length; i++)
{
if (i % 2 == 0)
{
char s = str[i];
if (s >= 'A' && s <= 'Z')
{
writer.Write((char)(s+ 32));
}
else if (s >= 'a' && s <= 'z')
{
writer.Write((char)(s - 32));
}
else if (s >= '0' && s <= '9')
{
writer.Write(Environment.NewLine);
}
else
{
writer.Write(1);
}
}
else
{
writer.Write(str[i]);
}
}
}
string reslut = sb.ToString();
扩展考点,那就看程序员自己本事了。比如C#9 有is and特性,比如C#7 有ref sturct,前面可以那个允许我们用模式判定,后面的特性允许我们直接修改数据而不是在内存里copy他