美文网首页
Lession10-字符串和正则表达式练习

Lession10-字符串和正则表达式练习

作者: 任人渐疏_Must | 来源:发表于2021-06-11 08:21 被阅读0次

    String练习

     class Program
        {
            static void Main(string[] args)
            {
                //1练习一:接受用户输入的字符串,将其字符以与输入相反的顺序输出 “abc”->"cba"
    
                string str = "abcdefg";
                //for (int i=str.Length-1;i>=0;i--)
                //{
                //    Console.Write(str[i]);
                //}
                //Console.WriteLine();
                char[] chs = str.ToCharArray();
                for (int i = 0;i<chs.Length/2;i++)
                {
                    /*
                     * chs[1]->chs[chs.length-1-0];
                     * chs[2]->chs[chs.leagth-1-1];
                     * 
                     */
                    char temp = chs[i];
                    chs[i] = chs[chs.Length - 1 - i];
                    chs[chs.Length - 1 - i] = temp;
                }
                str = new string(chs);
                Console.WriteLine(str);
    
                Console.WriteLine("---------------------------------------------");
    
                //2练习
                // hello c sharp  ->sharp c hello
    
                string str2 = "hello c sharp";
                string[] strNew = str2.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < strNew.Length / 2; i++)
                {
                    string temp = strNew[i];
                    strNew[i] = strNew[strNew.Length - 1 - i];
                    strNew[strNew.Length - 1 - i] = temp;
                }
                //foreach(string s in strNew)
                //{
                //    Console.WriteLine(s);
                //}
                //使用Join方法将字符串按照指定的分隔符连接
    
                str2 = string.Join(" ", strNew);
                Console.WriteLine(str2);
                Console.WriteLine("--------------------------------");
               
                //3练习:从Email中提取用户名和域名:abc@163.com
                string email = "abc@163.com";
                //string username = email.Substring(0, 3);
                //string yuMing = email.Substring(4);
                int index = email.IndexOf("@");
                string username = email.Substring(0, index);
                string yuMing = email.Substring(index+1);
    
                Console.WriteLine(username);
                Console.WriteLine(yuMing);
    
                Console.WriteLine("--------------------------------------------");
    
                //4练习:让用户输入一句话,找出所有e的位置
    
                string str3 = "adsdhkfjkajjoiewenfjejeen";
                //int index2 = str3.IndexOf('e');
                //Console.WriteLine("第1次出现e的位置是{0}",index2);
                ////循环体:从上一次出现e的位置加1的位置找下一次e出现的位置
                ////循环条件:index2 != -1
                //int count = 1;//用来记录e出现的次数
                //while(index2 != -1)
                //{
                //    count++;
                //    index2 = str3.IndexOf('e', index2 + 1);
                //    if(index2 == -1)
                //    {
                //        break;
                //    }
                //    Console.WriteLine("第{0}次出现e的位置是{1}", count, index2);
                //}
    
                for(int i = 0; i < str3.Length; i++)
                {
                    if (str3[i] == 'e')
                    {
                        Console.WriteLine(i);
                    }
                }
                Console.WriteLine("---------------------------------------------");
    
                //5练习:用户输入一句话,判断这句话中有没有牛逼,如果有牛逼的话就替换成“**”
                string str4 = "物联网班很牛逼";
                if (str4.Contains("牛逼"))
                {
                    str4 = str4.Replace("牛逼","**");
                }
                Console.WriteLine(str4);
    
                Console.WriteLine("--------------------------------------");
    
                //6练习:{"程咬金","猪八戒","孙尚香","鲁班"} 变成 程咬金|猪八戒|孙尚香|鲁班,然后再把|切割掉
                string[] names = { "程咬金", "猪八戒", "孙尚香", "鲁班" };
                string str5 = string.Join("|",names);
                string[] strNew2 = str5.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string name in strNew2)
                {
                    Console.WriteLine(name);
                }
                Console.ReadKey();
            }
        }
    
    
    
    

    正则练习

    /*
         * 1.判断一个字符串是不是身份证号码
         * 18位,前面17位都是数字,首位不能为0,末尾可能是数字可能是X
         * 
         * ^[1-9][0-9]{16}[0-9xX]$
         * 2. 判断字符串是否是正确的国内电话号码,不考虑分机
         * 010-8888888或010-88888880或010xxxxxxx 0917-8888888或0917-88888888 09178888888(区号-电话号码)
         * 10086 10010 95595 95599(5位)
         * 13888888 888(11位手机号)
         * 
         * a: [0-9]{3,4}-?[0-9]{7,8}
         * b: [0-9]{5}
         * c:[1-9][0-9]{10}
         * ^([0-9]{3,4}-?[0-9]{7,8}|[0-9]{5}|[1-9][0-9]{10})$
         * 
         * 3.判断合法的邮箱
         * xxxx   @  qq/163 .com/.xxxx.cn
         * 用户名:数字、[1-9][0-9]{10}字母、下划线、点、中划线
         * 域名:字母、数字、中划线
         * 后缀:.开头,后面可能字母,后面也有可能是.和字母
         *  ^[0-9a-zA-Z_.\-]+@[a-zA-Z\-0-9]+(\.[a-zA-Z]+){1,2}$
         */
        class Program
        {
            static void Main(string[] args)
            {
                //while (true)
                //{
                //    Console.WriteLine("请输入身份证号:");
                //    string id = Console.ReadLine();
                //    bool b = Regex.IsMatch(id, "^[1-9][0-9]{16}[0-9xX]$");
                //    Console.WriteLine(b);
    
                //}
    
                //while (true)
                //{
                //    Console.WriteLine("请输入电话号码:");
                //    string tel = Console.ReadLine();
                //    bool b = Regex.IsMatch(tel, "^([0-9]{3,4}-?[0-9]{7,8}|[0-9]{5}|1[0-9]{10})$");
                //    Console.WriteLine(b);
    
                //}
    
                while (true)
                {
                    Console.WriteLine("请输入邮箱:");
                    string email = Console.ReadLine();
                    bool b = Regex.IsMatch(email, "^[0-9a-zA-Z_.\\-]+@[a-zA-Z\\-0-9]+(\\.[a-zA-Z]+){1,2}$");
                    Console.WriteLine(b);
    
                }
    
                Console.ReadKey();
            }
        }
    
    
    

    相关文章

      网友评论

          本文标题:Lession10-字符串和正则表达式练习

          本文链接:https://www.haomeiwen.com/subject/vxhueltx.html