C#代码怎么完成包含多种要求

img

img


        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;
        }

img

基本考点是
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他