欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

六、C#入门—字符与字符串

程序员文章站 2022-03-25 18:05:57
六、C#字符与字符串 6.1.字符与转义字符 1)定义 char类结构表示unicode字符。可以用来定义单个中文字符 2)方法 char c1 = 'a'; char c2 = '0'; char c3 = 'A'; Console.WriteLine(char.IsLetter(c1)); // ......

六、c#字符与字符串

  6.1.字符与转义字符

    1)定义

      char类结构表示unicode字符。可以用来定义单个中文字符

    2)方法     

        char c1 = 'a';
            char c2 = '0';
            char c3 = 'a';

            console.writeline(char.isletter(c1));           //判断是否是字母
            console.writeline(char.isdigit(c2));            //判断是否是数字
            console.writeline(char.isletterordigit(c1));    //判断是否是字母或数字
            console.writeline(char.islower(c1));            //判断是否小写
            console.writeline(char.isupper(c3));            //判断是否大写
            console.writeline(char.ispunctuation(c1));      //判断是否是标点
            console.writeline(char.isseparator(c1));        //判断是否是分隔符
            console.writeline(char.iswhitespace(c1));       //判断是否是空格
            console.writeline(char.tolower(c3));            //转换成小写
            console.writeline(char.toupper(c1));            //转换成大写
            console.readline();

    3)转义字符

      六、C#入门—字符与字符串 

  6.2.字符串

    字符串是system.string类的一个引用类型,可以将string类型变量看成是char类型的只读数组

    1)字符集和字符编码

      ascii码、gb2312、unicode、utf-8等

      ascii '0'=48 '65'=a 'a'=97  

  6.3.字符串操作

    方法分为静态方法和非静态方法

    静态:string.方法    非静态:str.方法

        //6.3.字符串大小写转换
            string name = "jack";
            console.writeline(name.tolower());//转换成小写
            console.writeline(name.toupper());//转换成大写

            //6.4.字符串比较
            string str1 = "hello";
            string str2 = "hello";
            console.writeline(str1 == str2);
            console.writeline(string.equals(str1, str2));
            console.writeline(string.compare(str1, str2));      //>0:str1>str2 =0:str1=str2 <0:str1<str2
            console.writeline(string.compare(str1, str2, true));//忽略大小写
            console.writeline(str1.compareto(str2));            //>0:str1>str2 =0:str1=str2 <0:str1<str2
            
            //小写不应该大于大写吗,有点奇怪!!

            //6.5.字符串格式化
            string str3 = string.format("hello {0}," + "i am {1}.", "world", "hecarim");
            console.writeline(str3);
            str3 = string.format("{0:d3}", 1);     //填充成3位 -> 001
            console.writeline(str3);
            str3 = string.format("{0:f3}", 1.2345);//保留三位小数
            console.writeline(str3);

            //6.6.字符串截取
            string str4 = "hecarim";                    //字符串索引从0开始
            console.writeline(str4.substring(2));       //第2个开始截取 -> carim
            console.writeline(str4.substring(2, 2));    //第2个开始截取,长度为2 -> ca

            //6.7.字符串分割
            string str5 = "i-am-hecarim=18";
            string[] splitstr = str5.split('-');            //以'-'分割字符串
            foreach (string item in splitstr) console.write(item + "\t");
            //splitstr = str5.split(new char[] { '-', '=' }); //以'-','='分割字符串
            splitstr = str5.split("-=".tochararray()); //以'-','='分割字符串
            foreach (string item in splitstr) console.write(item + "\t");
            console.writeline();

            //6.8.字符串合并
            string str6 = "hello";
            string str7 = "world";
            console.writeline(str6 + str7);
            console.writeline(string.concat(str6, str7));   //合并str6 str7
            console.writeline(string.concat(splitstr));     //合并splitstr中的所有string
            console.writeline(string.join("-", splitstr));  //以'-'合并splitstr中的所有string

            //6.9.字符串插入填充
            string str8 = "hecarm";
            console.writeline(str8.insert(5, "i"));         //"i"插入到索引为5的位置
            console.writeline(str8.padleft(10));            //左填充成长度为10,默认是空格
            console.writeline(str8.padright(10, '*'));      //右填充成长度为10,用'*'填充,默认是空格

            //6.10.字符串删除
            string str9 = "hecarimzzz";
            console.writeline(str9.remove(7));              //移除索引为7之后的字符
            console.writeline(str9.remove(7, 2));           //移除索引为7之后的2个字符

            //6.11.字符串修剪
            string str10 = "   hecarim   ";
            console.writeline(str10.trim() + "|");          //修剪前后空格
            console.writeline(str10.trimstart() + "|");     //修剪前空格
            console.writeline(str10.trimend() + "|");       //修剪后空格
            string str11 = "&#&#hecarim*#$*$";
            console.writeline(str11.trim('$', '&'));                    //修剪前后的'$','&'
            console.writeline(str11.trim("&#*$".tochararray()));        //修剪前后的'$','&','*','#'

            //6.12.字符串复制
            string str12 = "vincent";
            console.writeline(string.copy(str12));
            char[] str13 = new char[20];
            str12.copyto(3, str13, 0, 4);                   //指定位置复制
            console.writeline(str13);

            //6.13.字符串替换
            string str14 = "hello";
            console.writeline(str14.replace('h', 'h'));     //将'h'替换成'h'

            //6.14.字符串查找
            string str15 = "hello world";
            console.writeline(str15.indexof("wor"));        //返回"wor"第一次出现的索引
            console.writeline(str15.lastindexof("wor"));    //返回"wor"最后一次出现的索引
console.readkey();

  6.15.类型转换

    1)转换形式

      隐式转换:是系统自发的,不需要我们进行干预,也不需要我们进行额外的编码

      显示转换:强制转换

            //类型转换
            int num1 = 65;
            string str16 = "97";
            console.writeline(checked((char)num1));         //强制转换,checked()检查变量是否溢出
            console.writeline(convert.tostring(num1));
            console.writeline(num1.tostring()); 
            console.writeline(int.parse(str16));

    2)区别

      (int)强制转换

       不进行四舍五入 

      convert.toint32()  

       可以将空值null转换成0

       0-4:直接舍弃

       5:返回一个临近的偶数

       6-9:进位

      int.parse()

       不能将空值null转换成0 

       只能转string类 

  6.17.stringbuilder类

    1)作用

      在使用system.string类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。

      在需要重复使用的情况下,创建新的string对象相关的系统开销就可能非常高

    2)使用

      引入system.text的命名空间

      通过new关键字初始化,eg:stringbuilder stbuilder = new stringbuilder("hecarim");

      使用方法与string类相同   

    3)方法

      append、appendline、appendformat ...