zoukankan      html  css  js  c++  java
  • [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

  • 相关阅读:
    资源:mysql下载路径
    知识点:jar包与war包的差异
    Linux:jar服务部署
    Flyway:Spring Boot中使用Flyway来管理数据库版本
    Java:Java控制台输出保存进文件
    Maven:手动添加jar包进Maven本地库内
    Https:SSL双向认证机制(理论知识)
    Linux ubuntu 下寻找 texlive 缺失包 texlive 缺失包(转载)
    Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)(转载)
    Android应用开发基础篇(12)-----Socket通信(转载)
  • 原文地址:https://www.cnblogs.com/newlifechou/p/8166340.html
Copyright © 2011-2022 走看看