一、字符串

  •   通过string定义一个字符串,或者通过String类来创建对象。

    •   通过new String() 创建有一下几种构造函数(从元数据),以此顺序创建string;
    • //
      // 摘要:
      // 将 System.String 类的新实例初始化为由 Unicode 字符数组指示的值。
      //
      // 参数:
      // value:
      // Unicode 字符的数组。
      [SecuritySafeCritical]
      public String(char[] value);
      //
      // 摘要:
      // 将 System.String 类的新实例初始化为由指向 8 位有符号整数数组的指针指示的值。
      //
      // 参数:
      // value:
      // 一个指针,指向以 null 结尾的 8 位带符号整数数组。
      //
      // 异常:
      // T:System.ArgumentNullException:
      // value 为 null。
      //
      // T:System.ArgumentException:
      // 如果 value 是用 ANSI 编码的,则不能使用 value 初始化 System.String 的新实例。
      //
      // T:System.ArgumentOutOfRangeException:
      // 要初始化的新字符串的长度过大,无法分配,该长度由 value 的 null 终止字符决定。
      //
      // T:System.AccessViolationException:
      // value 指定的地址无效。
      [CLSCompliant(false)]
      [SecurityCritical]
      public String(sbyte* value);
      //
      // 摘要:
      // 将 System.String 类的新实例初始化为由指向 Unicode 字符数组的指定指针指示的值。
      //
      // 参数:
      // value:
      // 指向以 null 终止的 Unicode 字符数组的指针。
      //
      // 异常:
      // T:System.ArgumentOutOfRangeException:
      // 当前进程并不是对所有编址字符都有读取权限。
      //
      // T:System.ArgumentException:
      // value 指定了包含无效 Unicode 字符的数组,或者 value 指定了小于 64000 的地址。
      [CLSCompliant(false)]
      [SecurityCritical]
      public String(char* value);
      //
      // 摘要:
      // 将 System.String 类的新实例初始化为由重复指定次数的指定 Unicode 字符指示的值。
      //
      // 参数:
      // c:
      // 一个 Unicode 字符。
      //
      // count:
      // c 出现的次数。
      //
      // 异常:
      // T:System.ArgumentOutOfRangeException:
      // count 小于零。
      [SecuritySafeCritical]
      public String(char c, int count);
      //
      // 摘要:
      // 将 System.String 类的新实例初始化为由 Unicode 字符数组、该数组内的起始字符位置和一个长度指示的值。
      //
      // 参数:
      // value:
      // Unicode 字符的数组。
      //
      // startIndex:
      // value 内的起始位置。
      //
      // length:
      // 要使用的 value 内的字符数。
      //
      // 异常:
      // T:System.ArgumentNullException:
      // value 为 null。
      //
      // T:System.ArgumentOutOfRangeException:
      // startIndex 或 length 小于零。- 或 -startIndex 和 length 之和大于 value 中的元素数。
      [SecuritySafeCritical]
      public String(char[] value, int startIndex, int length);
      //
      // 摘要:
      // 将 System.String 类的新实例初始化为由指向 8 位有符号整数数组的指定指针、该数组内的起始位置和一个长度指示的值。
      //
      // 参数:
      // value:
      // 指向 8 位带符号整数数组的指针。
      //
      // startIndex:
      // value 内的起始位置。
      //
      // length:
      // 要使用的 value 内的字符数。
      //
      // 异常:
      // T:System.ArgumentNullException:
      // value 为 null。
      //
      // T:System.ArgumentOutOfRangeException:
      // startIndex 或 length 小于零。- 或 -由 value + startIndex 指定的地址相对于当前平台来说太大;即,地址计算溢出。-
      // 或 -要初始化的新字符串的长度太大,无法分配。
      //
      // T:System.ArgumentException:
      // 由 value + startIndex 指定的地址小于 64K。- 或 -如果 value 是用 ANSI 编码的,则不能使用 value 初始化 System.String
      // 的新实例。
      //
      // T:System.AccessViolationException:
      // value、startIndex 和 length 共同指定的地址无效。
      [CLSCompliant(false)]
      [SecurityCritical]
      public String(sbyte* value, int startIndex, int length);
      //
      // 摘要:
      // 将 System.String 类的新实例初始化为由指向 Unicode 字符数组的指定指针、该数组内的起始字符位置和一个长度指示的值。
      //
      // 参数:
      // value:
      // 指向 Unicode 字符数组的指针。
      //
      // startIndex:
      // value 内的起始位置。
      //
      // length:
      // 要使用的 value 内的字符数。
      //
      // 异常:
      // T:System.ArgumentOutOfRangeException:
      // startIndex 或 length 小于零,value + startIndex 引起指针溢出,或者当前进程并不是对所有编址字符都有读取权限。
      //
      // T:System.ArgumentException:
      // value 指定了包含无效 Unicode 字符的数组,或者 value + startIndex 指定了小于 64000 的地址。
      [CLSCompliant(false)]
      [SecurityCritical]
      public String(char* value, int startIndex, int length);
      //
      // 摘要:
      // 将 System.String 类的新实例初始化为由指向 8 位有符号整数数组的指定指针、该数组内的起始位置、长度以及 System.Text.Encoding
      // 对象指示的值。
      //
      // 参数:
      // value:
      // 指向 8 位带符号整数数组的指针。
      //
      // startIndex:
      // value 内的起始位置。
      //
      // length:
      // 要使用的 value 内的字符数。
      //
      // enc:
      // 一个对象,用于指定如何对 value 所引用的数组进行编码。如果 enc 为 null,则假定以 ANSI 编码。
      //
      // 异常:
      // T:System.ArgumentNullException:
      // value 为 null。
      //
      // T:System.ArgumentOutOfRangeException:
      // startIndex 或 length 小于零。- 或 -由 value + startIndex 指定的地址相对于当前平台来说太大;即,地址计算溢出。-
      // 或 -要初始化的新字符串的长度太大,无法分配。
      //
      // T:System.ArgumentException:
      // 由 value + startIndex 指定的地址小于 64K。- 或 -未能使用 value 初始化 System.String 的新实例,假定 value
      // 按照 enc 的指定进行编码。
      //
      // T:System.AccessViolationException:
      // value、startIndex 和 length 共同指定的地址无效。
      [CLSCompliant(false)]
      [SecurityCritical]
      public String(sbyte* value, int startIndex, int length, Encoding enc);
    • char []cstr = { 'a','b','c','d','e'};
      char cstr1 = 'a';
      sbyte se = ; String a = new String(cstr);
      // String b = new String(&cstr1); String c = new String(&se); String d = new String('d',); String e = new String(cstr,,); String f = new String(&se,,);
      Console.WriteLine((int)Convert.ToChar(f)+"\n");//
      String g = new String(&se,,,Encoding.UTF8);
      Console.WriteLine("a:{0}\nb:{1}\nc:{2}\nd:{3}\ne:{4}\nf:{5}\ng:{6}",a,b,c,d,e,f,g);
  •   string是C#基元类型(primitive),string简单来说就是编译器直接支持的数据类型。运算符(== 和 !=)是为了比较 string 对象的值, 而不是比较引用
    • string a = "";
      string b = "";
      b += "";
      Console.WriteLine(a == b);//比较值
      Console.WriteLine((object)a == (object)b);//比较引用()
  •   string连接操作 (+=)
    •   缺点很明显, 操作频繁的话十分浪费内存空间的
    •   使用StringBuilder类对象方法append代替+=, 性能还有所提升
  •   null," "和string.Empty的区别
    •   null表示不引用任何变量的空引用的值,null是引用变量的默认值, 值类型变量无法使用
    •   ""表示分配一个内存为空的存储空间。
    •   string.Empty表示空字符串,并且不分配内存空间。
  •   判断字符串为空 的俩种方法
    •   x.length==0 // 无法判断为null的字符串
    •   string.IsNullOrEmpty(x)
       

C#字符串要点(复习专用)的更多相关文章

  1. ContentProvider要点复习

    ContentProvider要点复习 ContentProvider作为四大组件之一,发挥着举足轻重的作用.与之相关联的另外两个类分别是ContentResolver和ContentObserver ...

  2. C#知识点提炼期末复习专用

    根据内部消息称:有三类题型:  程序阅读题:2题  简答题:2题 (主要是对概念的考查)  编程题:暂定2-3题 复习要点: .net framework 通用语言开发环境..NET基础类库..NET ...

  3. python随笔--复习专用

    <!doctype html> blockquote:first-child, #write > div:first-child, #write > figure:first- ...

  4. C#数据类型及差异(复习专用)

    一.数据类型 值类型 类型 描述 范围 默认值 bool 布尔值 True 或 False False byte 8 位无符号整数 0 到 255 0 char 16 位 Unicode 字符 U + ...

  5. ES6-字符串-模板字符串(复习+学习)

    昨天学习了字符串对象和字符串的表示,就是利用utf-8等不同的编码方式,还有许多的对象方法,都是处理字符串的方法,挺方便的,今天我学习了一下字符串模板,这里记录i一下学习的笔记,当然,今天学习了部分内 ...

  6. Fragment要点复习

    做系统时间久了,应用层的很多东西都忘了,但是基础还是得巩固,下面对fragment相关的知识点简单整理一下. 一.fragment的引入 fragment是从Android3.0(API level ...

  7. C++类构造析构调用顺序训练(复习专用)

    //对象做函数参数 //1 研究拷贝构造 //2 研究构造函数,析构函数的调用顺序 //总结 构造和析构的调用顺序 #include "iostream" using namesp ...

  8. javaweb要点复习 jsp和servlet

    jsp:就是java server page ,  html嵌入java  ,所以更方面显示(V) serlet,就是服务器端小程序 java中嵌入html,更方面业务处理. jsp执行过程 1)客户 ...

  9. C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes

    因为一些特性复杂,很多时候也用不到一些特性,所以忘记了,算是随笔,也当作一个临时查找的手册.没有什么顺序,很杂. 1.构造函数通过函数重载的机制可以有多个(不同的构造函数,参数个数,或者参数类型不同. ...

随机推荐

  1. git之commit改用第三方编辑器

    git commit -m "***"方式提交注释,有限制,可通过调用第三方编辑器来编辑更好的注释 1 使用window自带的记事本 git config --global cor ...

  2. YUV转换成RGB算法

    YUV转换成RGB void yuvtorgb ( double *rgb,unsigned char *yuv) { int i; rgb[] = ] + + ] - ); // r rgb[] = ...

  3. 【转】S1 Setup

    概念 S1是eNB和MME之间交换应用层配置数据的接口的名称.它是在建立TNL完成后的第一个S1AP的操作,S1的建立意味着eNB和MME之间之前已经存在的所有应用层数据将被全部清空,所有的数据将被重 ...

  4. java代码异常篇

    总结:掌握流.缓冲区类的方法 package com.b; import java.io.BufferedReader; import java.io.File; import java.io.Fil ...

  5. 杂项:Grunt

    ylbtech-杂项:Grunt GRUNTJavaScript 世界的构建工具 1. 返回顶部 1. 为何要用构建工具? 一句话:自动化.对于需要反复重复的任务,例如压缩(minification) ...

  6. SQL中得到最后一个“-”后面的字符串

    declare @str varchar(50) set @str='-'+'1-9-3-2'--前面加个'-'防止没有'-'出错 select REVERSE(SUBSTRING(REVERSE(@ ...

  7. JavaScript基本概念B - 关于方法

    方法也是对象 这个事需要反复强调.方法是 类型 Function 的对象,和其他对象一样,它也有方法. function gen() { return function ans(factor) { r ...

  8. MessageBox如何输出整数

    int cx=10;CString s;s.Format(_T("整数是:%d"),cx);MessageBox(s);

  9. [Codeforces]#179 div1-----295ABCDE

    摘自我的github:https://github.com/Anoxxx The Solution Source: Codeforces Round #179 (Div. 1) VJudge链接: h ...

  10. AJAX——Json

    一.简介: 客户端利用Ajax请求服务器端时,数据在两者之间通常有两种格式:XML格式的数据:Json(JavaScript Object Notation/JavaScript 对象表示法)格式数据 ...