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


    C#字符与字符串

    字符与转义字符

      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.转义字符

           

    字符串

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

      1.字符集和字符编码

        ASCII码、GB2312、Unicode、UTF-8等

        ASCII   '0'=48 '65'=A 'a'=97  

    字符串操作

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

      静态: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 + "	");
    //splitStr = str5.Split(new char[] { '-', '=' }); //以'-','='分割字符串
    splitStr = str5.Split("-=".ToCharArray()); //以'-','='分割字符串
    foreach (string item in splitStr) Console.Write(item + "	");
    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();

    类型转换

      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类 

    StringBuilder类

      1.作用

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

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

      2.使用

        引入System.Text的命名空间

        通过new关键字初始化,eg:StringBuilder stBuilder = new StringBuilder("Hecarim");

        使用方法与String类相同   

      3.方法

        Append、AppendLine、AppendFormat ...

                

  • 相关阅读:
    STL_算法_05_集合算法
    STL_算法_04_算术和生成算法
    STL_算法_03_拷贝和替换算法
    STL_算法_02_排序算法
    STL_算法_01_查找算法
    STL_容器使用时机
    STL_容器共通能力
    Qt5_选择文件对话框
    Qt5_当前exe所在路径
    Java 静态代理和动态代理
  • 原文地址:https://www.cnblogs.com/Just-a-calm-programmer/p/12654772.html
Copyright © 2020-2023  润新知