美文网首页python热爱者码农的世界
C#风靡一时的编程语言和现在最火编程语言Python!谁更强?

C#风靡一时的编程语言和现在最火编程语言Python!谁更强?

作者: Python树苗 | 来源:发表于2018-05-31 14:06 被阅读1次

    请输入描述

    请输入描述

    步入正题: 欢迎提出更简单或者效率更高的方法

    基础系列:(这边重点说说Python,上次讲过的东西我就一笔带过了)

    1.输出+类型转换

    Python写法:

    请输入描述

    NetCore:

    请输入描述

    2.字符串拼接+ 拼接输出方式

    python:

    请输入描述

    NetCore

    请输入描述

    请输入描述

    请输入描述

    这次为了更加形象对比,一句一句翻译成NetCore( 有没有发现规律,user_str[ user_str.Length-1 ]==》 -1 是最后一个,user_str[ user_str.Length-2 ]==》 -2 是最后一个。python在这方面简化了 )

    请输入描述

    3.2 python 切片语法 : [start_index:end_index:step] (end_index取不到)

    # 切片:[start_index:end_index:step] (end_index取不到)

    # eg:str[1:4] 取str[1]、str[2]、str[3]

    # eg:str[2:] 取下标为2开始到最后的元素

    # eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到)

    # eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说)

    # eg:str[::-1] 逆向输出(案例会详细说,)

    来个案例:我注释部分说的很详细了,附录会贴democode的

    请输入描述

    NetCore,其实你用Python跟其他语言对比反差更大,net真的很强大了。补充(对比看就清楚Python的step为什么是2了,i+=2==》2)

    请输入描述

    方法系列:

    # 查找:find,rfind,index,rindex

    Python查找推荐你用 find和rfind

    请输入描述

    netcore: index0f 就相当于python里面的 find

    请输入描述

    # 计数:count

    python: str.count()

    请输入描述

    netcore:这个真用基础来解决的话,只能自己变形一下: (原字符串长度 - 替换后的长度) / 字符串长度

    请输入描述

    Python补充说明:像这些方法练习用 ipython3 就好了( sudo apt-get install ipython3 ),code的话需要一个个的print,比较麻烦(我这边因为需要写文章,所以只能一个个code)

    请输入描述

    index查找不到会有异常

    请输入描述

    # 替换:replace

    Python: xxx.replace(str1, str2, 替换次数)

    请输入描述

    replace可以指定替换几次

    请输入描述

    NetCore:替换指定次数的功能有点业余,就不说了,你可以自行思考哦~

    请输入描述

    #连接:join: eg:print("-".join(test_list))

    请输入描述

    netcore: string.Join(分隔符,数组)

    请输入描述

    #分割:split(按指定字符分割),splitlines(按行分割),partition(以str分割成三部分,str前,str和str后),rpartition

    说下split的切片用法 :print( test_input.split(" ",3) ) #在第三个空格处切片,后面的不切了

    请输入描述

    请输入描述

    继续说说 splitlines (按行分割),和split("\n")的区别我图中给了案例

    扩展: split(),默认按空字符切割(空格、\t、\n等等,不用担心返回'')

    请输入描述

    最后说一下 partition 和 r partition  返回是元祖类型(后面会说的),方式和find一样,找到第一个匹配的就罢工了【注意一下没找到的情况】

    请输入描述

    netcore:  split里面很多重载方法,可以自己去查看下,eg: Split("\n",StringSplitOptions.RemoveEmptyEntries)

    再说一下这个: test_str.Split('a');//返回数组 。 如果要和Python一样 返回列表 ==》test_str.Split('a').ToList() ; 【需要引用linq的命名空间哦】

    请输入描述

    # 头尾判断:startswith(以。。。开头),endswith(以。。。结尾)

    请输入描述

    netcore:

    请输入描述

    # 大小写系: lower (字符串转换为小写), upper (字符串转换为大写),title(单词首字母大写), capitalize ( 第一个字符大写,其他变小写 )

    请输入描述

    netcore:

    请输入描述

    # 格式系列: lstrip (去除左边空格), rstrip (去除右边空格), strip (去除两边空格)美化输出系列: ljust , rjust , center

    请输入描述

    请输入描述

    netcore: Tirm很强大,除了去空格还可以去除你想去除的任意字符

    请输入描述

    ljust,rjust,center这些就不说了,python经常在linux终端中输出,所以这几个用的比较多。net里面 string.Format 各种格式化输出,可以参考

    # 验证系列: isalpha (是否是纯字母), isalnum (是否是数字|字母), isdigit (是否是纯数字), isspace (是否是纯空格)

    一张图搞定,其他的自己去试一试吧,注意哦~  test_str5=" \t \n " # isspace() ==>true

    请输入描述

    netcore: string. IsNullOrEmpty 和 string. IsNullOrWhiteSpace 是系统自带的,其他的你需要自己封装一个扩展类(eg: 简单封装 )【附录有】

    请输入描述

    附录:

    Python3:

    # #输出+类型转换

    # user_num1=input("输入第一个数:")

    # user_num2=input("输入第二个数:")

    # print("两数之和:%d"%(int(user_num1)+int(user_num2)))

    # # ------------------------------------------------------------

    # #字符串拼接

    # user_name=input("输入昵称:")

    # user_pass=input("输入密码:")

    # user_url="192.168.1.121"

    # #拼接输出方式一:

    # print("ftp://"+user_name+":"+user_pass+"@"+user_url)

    # #拼接输出方式二:

    # print("ftp://%s:%s@%s"%(user_name,user_pass,user_url))

    # # -------------------------------------------------------------

    # # 字符串遍历、下标、切片

    # user_str="七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?"

    # #遍历

    # for item in user_str:

    #    print(item,end=" ")

    # #长度:len(user_str)

    # print(len(user_str))

    # #第一个元素:user_str[0]

    # print(user_str[0])

    # #最后一个元素:user_str[-1]

    # print(user_str[-1])

    # print(user_str[len(user_str)-1])#其他编程语言写法

    # #倒数第二个元素:user_str[-2]

    # print(user_str[-2])

    # # -------------------------------------------------------------

    # 切片:[start_index:end_index:step] (end_index取不到)

    # eg:str[1:4] 取str[1]、str[2]、str[3]

    # eg:str[2:] 取下标为2开始到最后的元素

    # eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到)

    # eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说)

    # eg:str[::-1] 逆向输出(案例会详细说,)

    it_str="我爱编程,编程爱它,它是程序,程序是谁?"

    #eg:取“编程爱它” it_str[5:9]

    print(it_str[5:9])

    print(it_str[5:-11]) #end_index用-xx也一样

    print(it_str[-15:-11])#start_index用-xx也可以

    #eg:取“编程爱它,它是程序,程序是谁?” it_str[5:]

    print(it_str[5:])#不写默认取到最后一个

    #eg:一个隔一个跳着取("我编,程它它程,序谁") it_str[0::2]

    print(it_str[0::2])#step=△index(eg:0,1,2,3。这里的step=> 2-0 => 间隔1)

    #eg:倒序输出 it_str[::-1]

    # end_index不写默认是取到最后一个,是正取(从左往右)还是逆取(从右往左),就看step是正是负

    print(it_str[::-1])

    print(it_str[-1::-1])#等价于上一个

    # # -------------------------------------------------------------

    View Code

    test_str="ABCDabcdefacddbdf"

    # -------------------------------------------------------------

    # # 查找:find,rfind,index,rindex

    # # xxx.find(str, start, end)

    # print(test_str.find("cd"))#从左往右

    # print(test_str.rfind("cd"))#从右往左

    # print(test_str.find("dnt"))#find和rfind找不到就返回-1

    # # index和rindex用法和find一样,只是找不到会报错(以后用find系即可)

    # # print(test_str.index("dnt"))

    # # -------------------------------------------------------------

    # # 计数:count

    # # xxx.count(str, start, end)

    # print(test_str.count("a"))

    # # -------------------------------------------------------------

    # # 替换:replace

    # # xxx.replace(str1, str2, count_num)

    # print(test_str)

    # print(test_str.replace("b","B"))#并没有改变原字符串,只是生成了一个新的字符串

    # print(test_str)

    # # replace可以指定替换几次

    # print(test_str.replace("b","B",1))#ABCDaBcdefacddbdf

    # # -------------------------------------------------------------

    # 分割:split(按指定字符分割),splitlines(按行分割),,partition(以str分割成三部分,str前,str和str后),rpartition

    # test_list=test_str.split("a")#a有两个,按照a分割,那么会分成三段,返回类型是列表(List),并且返回结果中没有a

    # print(test_list)

    # test_input="hi my name is dnt"

    # print(test_input.split(" ")) #返回列表格式(后面会说)['hi', 'my', 'name', 'is', 'dnt']

    # print(test_input.split(" ",3))#在第三个空格处切片,后面的不管了

    # # 按行分割,返回类型为List

    # test_line_str="abc\nbca\ncab\n"

    # print(test_line_str.splitlines())#['abc', 'bca', 'cab']

    # print(test_line_str.split("\n"))#看出区别了吧:['abc', 'bca', 'cab', '']

    # # 没看出来就再来个案例

    # test_line_str2="abc\nbca\ncab\nLLL"

    # print(test_line_str2.splitlines())#['abc', 'bca', 'cab', 'LLL']

    # print(test_line_str2.split("\n"))#再提示一下,最后不是\n就和上面一样效果

    # 扩展:

    # print("hi my name is dnt\t\n  m\n\t\n".split())#split(),默认按空字符切割(空格、\t、\n等等,不用担心返回'')

    # #partition,返回是元祖类型(后面会说的),方式和find一样,找到第一个匹配的就罢工了

    # print(test_str.partition("cd"))#('ABCDab', 'cd', 'efacddbdf')

    # print(test_str.rpartition("cd"))#('ABCDabcdefa', 'cd', 'dbdf')

    # print(test_str.partition("感觉自己萌萌哒"))#没找到:('ABCDabcdefacddbdf', '', '')

    # # -------------------------------------------------------------

    # # 连接:join

    # # separat.join(xxx)

    # # 错误用法:xxx.join("-")

    # print("-".join(test_list))

    # # -------------------------------------------------------------

    # # 头尾判断:startswith(以。。。开头),endswith(以。。。结尾)

    # # test_str.startswith(以。。。开头)

    # start_end_str="http://www.baidu.net"

    # print(start_end_str.startswith("https://") or start_end_str.startswith("http://"))

    # print(start_end_str.endswith(".com"))

    # # -------------------------------------------------------------

    # # 大小写系:lower(字符串转换为小写),upper(字符串转换为大写),title(单词首字母大写),capitalize(第一个字符大写,其他变小写)

    # print(test_str)

    # print(test_str.upper())#ABCDABCDEFACDDBDF

    # print(test_str.lower())#abcdabcdefacddbdf

    # print(test_str.capitalize())#第一个字符大写,其他变小写

    # # -------------------------------------------------------------

    # # 格式系列:lstrip(去除左边空格),rstrip(去除右边空格),strip(去除两边空格),ljust,rjust,center

    # strip_str=" I Have a Dream "

    # print(strip_str.strip()+"|")#我加 | 是为了看清后面空格,没有别的用处

    # print(strip_str.lstrip()+"|")

    # print(strip_str.rstrip()+"|")

    # #这个就是格式化输出,就不讲了

    # print(test_str.ljust(50))

    # print(test_str.rjust(50))

    # print(test_str.center(50))

    # # -------------------------------------------------------------

    # 验证系列:isalpha(是否是纯字母),isalnum(是否是数字|字母),isdigit(是否是纯数字),isspace(是否是纯空格)

    # test_str2="Abcd123"

    # test_str3="123456"

    # test_str4="  \t"

    # test_str5="  \t \n " #isspace() ==>true

    # 一张图搞定,其他的自己去试一试吧

    # test_str.isalpha()

    # test_str.isalnum()

    # test_str.isdigit()

    # test_str.isspace()

    View Code

    NetCore:

    using System;

    using System.Linq;

    namespace aibaseConsole

    {

        public static class Program

        {

            private static void Main()

            {

                #region BaseCode

                //var test="123";//定义一个变量

                //            Console.WriteLine(test);//输出这个变量

                //

                //            Console.WriteLine("请输入用户名:");

                //            var name = Console.ReadLine();

                //           

                //            Console.WriteLine("请输入性别:");

                //            var gender = Console.ReadLine();

                //           

                //            Console.WriteLine($"Name:{name},Gender:{gender}"); //推荐用法

                //            Console.WriteLine("Name:{0},Gender:{1}", name, gender); //Old 输出

                //

                ////            类型转换

                //            Console.WriteLine("输入第一个数字:");               

                //            var num1 = Console.ReadLine();             

                //            Console.WriteLine("输入第二个数字:");               

                //            var num2 = Console.ReadLine();

                //            Console.WriteLine($"num1+num2={Convert.ToInt32(num1)+Convert.ToInt32(num2)}");

                //           

                ////            Convert.ToInt64(),Convert.ToDouble(),Convert.ToString()

                //            Console.Write("dnt.dkill.net/now");

                //            Console.WriteLine("带你走进中医经络");

                //

                //            var temp = "xxx";

                //            var tEmp = "===";

                //            Console.WriteLine(temp + tEmp);

                //            var num = 9;

                //            Console.WriteLine("num=9,下面结果是对2的除,取余,取商操作:");

                //            Console.WriteLine(num/2.0);

                //            Console.WriteLine(num%2.0);

                //            Console.WriteLine(num/2);

                //            //指数

                //            Console.WriteLine(Math.Pow(2,3));

                //            int age = 24;

                //

                //            if (age >= 23)

                //                Console.WriteLine("七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?");

                //            else if (age >= 18)

                //            {

                //                Console.WriteLine(age);

                //                Console.WriteLine("成年了哇");

                //            }

                //            else

                //                Console.WriteLine("好好学习天天向上");

                //            int i = 1;

                //            int sum = 0;

                //            while (i <= 100)

                //            {

                //                sum += i;

                //                i++;

                //            }

                //            Console.WriteLine(sum);

                //          var name = "https://pan.baidu.com/s/1weaF2DGsgDzAcniRzNqfyQ#mmd";

                //            foreach (var i in name)

                //            {

                //                if(i=='#')

                //                break;

                //                Console.Write(i);

                //            }

                //            Console.WriteLine("\n end ...");

                #endregion

                #region String

                //            //# # 字符串遍历、下标、切片

                //            //# user_str="七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?"

                //            var user_str = "七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?";

                //

                //            //# #遍历

                //            //# for item in user_str:

                //            //#    print(item,end=" ")

                //            foreach (var item in user_str)

                //            {

                //                Console.Write(item);

                //            }

                //           

                //            //# #长度:len(user_str)

                //            //# print(len(user_str))

                //            Console.WriteLine(user_str.Length);

                //

                //            //# #第一个元素:user_str[0]

                //            //# print(user_str[0])

                //            Console.WriteLine(user_str[0]);

                //           

                //            //# #最后一个元素:user_str[-1]

                //            //# print(user_str[-1])

                //            //# print(user_str[len(user_str)-1])#其他编程语言写法

                //            Console.WriteLine(user_str[user_str.Length-1]);

                //            //

                //            //# #倒数第二个元素:user_str[-2]

                //            //# print(user_str[-2])

                //            Console.WriteLine(user_str[user_str.Length-2]);

                //            //# # -------------------------------------------------------------

                //            //

                //            //# 切片:[start_index:end_index:step] (end_index取不到)

                //            //# eg:str[1:4] 取str[1]、str[2]、str[3]

                //            //# eg:str[2:] 取下标为2开始到最后的元素

                //            //# eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到)

                //            //# eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说)

                //            //# eg:str[::-1] 逆向输出(案例会详细说,)

                //            //

                //            var it_str = "我爱编程,编程爱它,它是程序,程序是谁?";

                //            //

                //            //#eg:取“编程爱它” it_str[5:9]

                //            //            print(it_str[5:9])

                //            //            print(it_str[5:-11]) #end_index用-xx也一样

                //            //            print(it_str[-15:-11])#start_index用-xx也可以

                //           

                //            //Substring(int startIndex, int length)

                //            Console.WriteLine(it_str.Substring(5, 4));//第二个参数是长度

                //           

                //            //

                //            //#eg:取“编程爱它,它是程序,程序是谁?” it_str[5:]

                //            //            print(it_str[5:])#不写默认取到最后一个

                //            Console.WriteLine(it_str.Substring(5));//不写默认取到最后一个

                //           

                //            //#eg:一个隔一个跳着取("我编,程它它程,序谁") it_str[0::2]

                //            //            print(it_str[0::2])#step=△index(eg:0,1,2,3。这里的step=> 2-0 => 间隔1)

                //           

                //            //这个我第一反应是用linq ^_^

                //            for (int i = 0; i < it_str.Length; i+=2)//对比看就清除Python的step为什么是2了,i+=2==》2

                //            {

                //                Console.Write(it_str[i]);

                //            }

                //           

                //            Console.WriteLine("\n倒序:");

                //            //#eg:倒序输出 it_str[::-1]

                //            //# end_index不写默认是取到最后一个,是正取(从左往右)还是逆取(从右往左),就看step是正是负

                //            //            print(it_str[::-1])

                //            //            print(it_str[-1::-1])#等价于上一个

                //            for (int i = it_str.Length-1; i>=0; i--)

                //            {

                //                Console.Write(it_str[i]);

                //            }

                //            //其实可以用Linq:Console.WriteLine(new string(it_str.ToCharArray().Reverse().ToArray()));

                #endregion

                #region StringMethod

                // var test_str = "ABCDabcdefacddbdf";

                // //# # 查找:find,rfind,index,rindex

                // //# # xxx.find(str, start, end)

                // //# print(test_str.find("cd"))#从左往右

                // Console.WriteLine(test_str.IndexOf('a'));//4

                // Console.WriteLine(test_str.IndexOf("cd"));//6

                // //# print(test_str.rfind("cd"))#从右往左

                // Console.WriteLine(test_str.LastIndexOf("cd"));//11

                // //# print(test_str.find("dnt"))#find和rfind找不到就返回-1

                // Console.WriteLine(test_str.IndexOf("dnt"));//-1

                // //# # index和rindex用法和find一样,只是找不到会报错(以后用find系即可)

                // //# print(test_str.index("dnt"))

                // //# # -------------------------------------------------------------

                // //# # 计数:count

                // //# # xxx.count(str, start, end)

                // // print(test_str.count("d"))#4

                // // print(test_str.count("cd"))#2

                // // 第一反应,字典、正则、linq,后来想怎么用基础知识解决,于是有了这个~(原字符串长度-替换后的长度)/字符串长度

                // System.Console.WriteLine(test_str.Length-test_str.Replace("d","").Length);//统计单个字符就简单了

                // System.Console.WriteLine((test_str.Length-test_str.Replace("cd","").Length)/"cd".Length);

                // System.Console.WriteLine(test_str);//不用担心原字符串改变(python和C#都是有字符串不可变性的)

                // //# # -------------------------------------------------------------

                // //

                // //# # 替换:replace

                // //# # xxx.replace(str1, str2, count_num)

                // //# print(test_str)

                // //# print(test_str.replace("b","B"))#并没有改变原字符串,只是生成了一个新的字符串

                // //# print(test_str)

                // System.Console.WriteLine(test_str.Replace("b","B"));

                // //# # replace可以指定替换几次

                // //# print(test_str.replace("b","B",1))#ABCDaBcdefacddbdf

                // // 替换指定次数的功能有点业余,就不说了

                // //# # -------------------------------------------------------------

                // //# 分割:split(按指定字符分割),splitlines(按行分割),partition(以str分割成三部分,str前,str和str后),rpartition

                // //# test_list=test_str.split("a")#a有两个,按照a分割,那么会分成三段,返回类型是列表(List),并且返回结果中没有a

                // //# print(test_list)

                // var test_array = test_str.Split('a');//返回数组(如果要返回列表==》test_str.Split('a').ToList();)

                // var test_input = "hi my name is dnt";

                // //# print(test_input.split(" ")) #返回列表格式(后面会说)['hi', 'my', 'name', 'is', 'dnt']

                // test_input.Split(" ");

                // //# print(test_input.split(" ",3))#在第三个空格处切片,后面的不管了

                // //# # 按行分割,返回类型为List

                // var test_line_str = "abc\nbca\ncab\n";

                // //# print(test_line_str.splitlines())#['abc', 'bca', 'cab']

                // test_line_str.Split("\n", StringSplitOptions.RemoveEmptyEntries);

                // //# print(test_line_str.split("\n"))#看出区别了吧:['abc', 'bca', 'cab', '']

                // //

                // //# # # 没看出来就再来个案例

                // //# test_line_str2="abc\nbca\ncab\nLLL"

                // //# print(test_line_str2.splitlines())#['abc', 'bca', 'cab', 'LLL']

                // //# print(test_line_str2.split("\n"))#再提示一下,最后不是\n就和上面一样效果

                // //

                // //# # 扩展:

                // //# print("hi my name is dnt\t\n  m\n\t\n".split())#split(),默认按空字符切割(空格、\t、\n等等,不用担心返回'')

                // //

                // //# #partition,返回是元祖类型(后面会说的),方式和find一样,找到第一个匹配的就罢工了

                // //# print(test_str.partition("cd"))#('ABCDab', 'cd', 'efacddbdf')

                // //# print(test_str.rpartition("cd"))#('ABCDabcdefa', 'cd', 'dbdf')

                // //# print(test_str.partition("感觉自己萌萌哒"))#没找到:('ABCDabcdefacddbdf', '', '')

                // //

                // //# # -------------------------------------------------------------

                // //# 连接:join

                // //# separat.join(xxx)

                // //# 错误用法:xxx.join("-")

                // //# print("-".join(test_list))

                // System.Console.WriteLine(string.Join("-",test_array));//test_array是数组 ABCD-bcdef-cddbdf

                //# # -------------------------------------------------------------

                //

                // //# # 头尾判断:startswith(以。。。开头),endswith(以。。。结尾)

                // //# # test_str.startswith(以。。。开头)

                // var start_end_str="http://www.baidu.net";

                // //# print(start_end_str.startswith("https://") or start_end_str.startswith("http://"))

                // System.Console.WriteLine(start_end_str.StartsWith("https://")||start_end_str.StartsWith("http://"));

                // //# print(start_end_str.endswith(".com"))

                // System.Console.WriteLine(start_end_str.EndsWith(".com"));

                // //# # -------------------------------------------------------------

                // //

                // //# # 大小写系:lower(字符串转换为小写),upper(字符串转换为大写),title(单词首字母大写),capitalize(第一个字符大写,其他变小写)

                // //# print(test_str)

                // //# print(test_str.upper())#ABCDABCDEFACDDBDF

                // System.Console.WriteLine(test_str.ToUpper());

                // //# print(test_str.lower())#abcdabcdefacddbdf

                // System.Console.WriteLine(test_str.ToLower());

                // //# print(test_str.capitalize())#第一个字符大写,其他变小写

                // //

                // //# # -------------------------------------------------------------

                // //

                // //# # 格式系列:lstrip(去除左边空格),rstrip(去除右边空格),strip(去除两边空格),ljust,rjust,center

                // var strip_str=" I Have a Dream ";

                // //# print(strip_str.strip()+"|")#我加 | 是为了看清后面空格,没有别的用处

                // System.Console.WriteLine(strip_str.Trim()+"|");

                // //# print(strip_str.lstrip()+"|")

                // System.Console.WriteLine(strip_str.TrimStart()+"|");

                // //# print(strip_str.rstrip()+"|")

                // System.Console.WriteLine(strip_str.TrimEnd()+"|");

                //# #这个就是格式化输出,就不讲了

                //# print(test_str.ljust(50))

                //# print(test_str.rjust(50))

                //# print(test_str.center(50))

                //# # -------------------------------------------------------------

                //

                // //# 验证系列:isalpha(是否是纯字母),isalnum(是否是数字|字母),isdigit(是否是纯数字),isspace(是否是纯空格)

                // //

                // //# test_str2="Abcd123"

                // //# test_str3="123456"

                // var test_str4="  \t";

                // var test_str5="  \t \n "; //#isspace() ==>true

                // // string.IsNullOrEmpty 和 string.IsNullOrWhiteSpace 是系统自带的,其他的你需要自己封装一个扩展类

                // System.Console.WriteLine(string.IsNullOrEmpty(test_str4)); //false

                // System.Console.WriteLine(string.IsNullOrWhiteSpace(test_str4));//true

                // System.Console.WriteLine(string.IsNullOrEmpty(test_str5));//false

                // System.Console.WriteLine(string.IsNullOrWhiteSpace(test_str5));//true

                // //# 一张图搞定,其他的自己去试一试吧

                // //# test_str.isalpha()

                // //# test_str.isalnum()

                // //# test_str.isdigit()

                // //# test_str.isspace()

                #endregion

                // Console.Read();

            }

        }

    }

    View Code

    简单封装:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text.RegularExpressions;

    public static partial class ValidationHelper

    {

        #region 常用验证

        #region 集合系列

        ///

        /// 判断集合是否有数据

        ///

        ///

        ///

        ///

        public static bool ExistsData(this IEnumerable list)

        {

            bool b = false;

            if (list != null && list.Count() > 0)

            {

                b = true;

            }

            return b;

        }

        #endregion

        #region Null判断系列

        ///

        /// 判断是否为空或Null

        ///

        ///

        ///

        public static bool IsNullOrWhiteSpace(this string objStr)

        {

            if (string.IsNullOrWhiteSpace(objStr))

            {

                return true;

            }

            else

            {

                return false;

            }

        }

        ///

        /// 判断类型是否为可空类型

        ///

        ///

        ///

        public static bool IsNullableType(Type theType)

        {

            return (theType.IsGenericType && theType.GetGenericTypeDefinition().Equals(typeof(Nullable<>)));

        }

        #endregion

        #region 数字字符串检查

        ///

        /// 是否数字字符串(包括小数)

        ///

        /// 输入字符串

        ///

        public static bool IsNumber(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, @"^\d+(\.\d+)?$");

            }

            catch

            {

                return false;

            }

        }

        ///

        /// 是否是浮点数

        ///

        /// 输入字符串

        ///

        public static bool IsDecimal(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, @"^(-?\d+)(\.\d+)?$");

            }

            catch

            {

                return false;

            }

        }

        #endregion

        #endregion

        #region 业务常用

        #region 中文检测

        ///

        /// 检测是否有中文字符

        ///

        ///

        ///

        public static bool IsZhCN(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, "[\u4e00-\u9fa5]");

            }

            catch

            {

                return false;

            }

        }

        #endregion

        #region 邮箱验证

        ///

        /// 判断邮箱地址是否正确

        ///

        ///

        ///

        public static bool IsEmail(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");

            }

            catch

            {

                return false;

            }

        }

        #endregion

        #region IP系列验证

        ///

        /// 是否为ip

        ///

        ///

        ///

        public static bool IsIP(this string objStr)

        {

            return Regex.IsMatch(objStr, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");

        }

        ///  

        /// 判断输入的字符串是否是表示一个IP地址 

        ///  

        /// 被比较的字符串 

        /// 是IP地址则为True 

        public static bool IsIPv4(this string objStr)

        {

            string[] IPs = objStr.Split('.');

            for (int i = 0; i < IPs.Length; i++)

            {

                if (!Regex.IsMatch(IPs[i], @"^\d+$"))

                {

                    return false;

                }

                if (Convert.ToUInt16(IPs[i]) > 255)

                {

                    return false;

                }

            }

            return true;

        }

        ///

        /// 判断输入的字符串是否是合法的IPV6 地址 

        ///

        ///

        ///

        public static bool IsIPV6(string input)

        {

            string temp = input;

            string[] strs = temp.Split(':');

            if (strs.Length > 8)

            {

                return false;

            }

            int count = input.GetStrCount("::");

            if (count > 1)

            {

                return false;

            }

            else if (count == 0)

            {

                return Regex.IsMatch(input, @"^([\da-f]{1,4}:){7}[\da-f]{1,4}$");

            }

            else

            {

                return Regex.IsMatch(input, @"^([\da-f]{1,4}:){0,5}::([\da-f]{1,4}:){0,5}[\da-f]{1,4}$");

            }

        }

        #endregion

        #region 网址系列验证

        ///

        /// 验证网址是否正确(http:或者https:)【后期添加 // 的情况】

        ///

        /// 地址

        ///

        public static bool IsWebUrl(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?|https://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");

            }

            catch

            {

                return false;

            }

        }

        ///

        /// 判断输入的字符串是否是一个超链接 

        ///

        ///

        ///

        public static bool IsURL(this string objStr)

        {

            string pattern = @"^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$";

            return Regex.IsMatch(objStr, pattern);

        }

        #endregion

        #region 邮政编码验证

        ///

        /// 验证邮政编码是否正确

        ///

        /// 输入字符串

        ///

        public static bool IsZipCode(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, @"\d{6}");

            }

            catch

            {

                return false;

            }

        }

        #endregion

        #region 电话+手机验证

        ///

        /// 验证手机号是否正确

        ///

        /// 手机号

        ///

        public static bool IsMobile(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, @"^13[0-9]{9}|15[012356789][0-9]{8}|18[0123456789][0-9]{8}|147[0-9]{8}$");

            }

            catch

            {

                return false;

            }

        }

        ///

        /// 匹配3位或4位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔 

        ///

        ///

        ///

        public static bool IsPhone(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, "^\\(0\\d{2}\\)[- ]?\\d{8}$|^0\\d{2}[- ]?\\d{8}$|^\\(0\\d{3}\\)[- ]?\\d{7}$|^0\\d{3}[- ]?\\d{7}$");

            }

            catch

            {

                return false;

            }

        }

        #endregion

        #region 字母或数字验证

        ///

        /// 是否只是字母或数字

        ///

        ///

        ///

        public static bool IsAbcOr123(this string objStr)

        {

            try

            {

                return Regex.IsMatch(objStr, @"^[0-9a-zA-Z\$]+$");

            }

            catch

            {

                return false;

            }

        }

        #endregion

        #endregion

    }

    View Code

     说这么多基本上差不多完了,下次列表+字典+元组就一起讲了啊~ 

    欢迎关注我的博客或者公众号:https://home.cnblogs.com/u/Python1234/ Python学习交流

    欢迎加入我的千人交流答疑群:125240963

    相关文章

      网友评论

        本文标题:C#风靡一时的编程语言和现在最火编程语言Python!谁更强?

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