• [Clr via C#读书笔记]Cp14字符字符串和文本处理


    Cp14字符字符串和文本处理

    字符

    System.Char结构,2个字节的Unicode,提供了大量的静态方法;可以直接强制转换成数值;

    字符串

    使用最频繁的类型;不可变;引用类型,在堆上分配,但是使用起来感觉好像是值类型,比如说不用new直接赋值,原因是CLR对字符串做了特殊的处理;

    StringBuilder

    因为字符串本身的不变性,所以每次进行各种操作都是生成一个新的字符串,多个字符串进行这种处理会影响到性能,所以推荐使用StringBuidler类进行处理;

    字符串文化问题

    语言和国家的影响

    字符串留用

    CLR利用字符串对照表来存储常用的字符串,如果有新字符串和之前的字符串一样的话,直接引用原来的字符串,从而提高效率,节省空间;类似之前的事件表的道理;

    字符串池

    类似字符串留用,只不过这个是编译器级别的;

    String的一些方法和属性

    基本上都是很常用的

    高效率创建字符串

    就是前面提到的StringBuilder类,了解它的成员和成员用途

    ToString

    默认返回对象所属的类型全名,可以override来显示其他信息;

    IFormattable和IFormatProvider的作用

    自定义格式化器

    String.Format

    格式化方法,最新的C#6支持$"hello{}world"的方式,更容易使用,本质还是String.Format;

    解析字符串来获取对象Parse和TryParse

    Parse解析失败的时候会抛出异常,而TryParse不会;用法VS的Intelisence会有提示,没有问题;
    字符串本身必须满足格式要求,比如日期字符串,否则会解析失败;

    编码:字符和字节的转换

    文件读写;网络传输;的时候经常会见到;最常见的是UTF-8和UTF-16;
    System.Text.Encoding类,GetEncoding,GetBytes等成员;

    字节和字节流的编码和解码

    解码存在的问题,System.Text.Decoder类;

    Base-64

    可以使用System.Convert中的方法

    安全字符串

    System.Security.SecureString

  • 相关阅读:
    springboot动态修改日志级别
    加密算法之RSA算法
    关于 BeanDefinitionOverrideException的解析
    Hive基础知识总结
    Java中的字符串替换:replace/replaceAll/StringTemplate
    xxl-job简介&整体架构设计
    java启动springboot jar包后台不挂断运行
    java自定义线程名称
    idea2019.2.2版本激活
    Log4j的MDC机制如何在线程池中使用
  • 原文地址:https://www.cnblogs.com/newlifechou/p/8166340.html
Copyright © 2020-2023  润新知