zoukankan      html  css  js  c++  java
  • C#--字符、字符串学习

    字符

    .NET Framework中,每个字符都是System.Char结构的一个实例。System.Char类型很简单,提供了两个公共只读常量字段:MinValueMaxValue

    GetNumericValue方法返回字符的数值形式。

     public static void Go() {
      Double d;
    
      // 数字3
      d = Char.GetNumericValue('u0033'); // ‘3’ would work too
      Console.WriteLine(d.ToString());	   // Displays "3"
    
      // 普通分数 四分之一
      d = Char.GetNumericValue('u00bc');
      Console.WriteLine(d.ToString());	   // Displays "0.25"
    
      // 'A'是大写拉丁字母A
      d = Char.GetNumericValue('A');
      Console.WriteLine(d.ToString());	  // Displays "-1"
    }
    

    可以使用三种技术来实现各种数值类型和Char实例的相互转换。下面按照优先顺序来列出

    • 转型(强制类型转换),最常用
    • 使用Convert类型
    • 使用IConvertible接口

    system.String类型

    String类型直接拍绳子Object,所以是引用类型。因此String类型总是存在在堆上,永远不会跑到线程栈。
    提示:如果想换行或者回车,应该使用Environment.NewLine方式。
    可以使用C#的+操作符直接将几个字符串连成一个。
    最后,C#提供了一种特殊的字符串处理方式,称为逐字字符串,通常用于指定文件或目录的路径,或者与正则表达式配合使用。

    String file= "c:\Windows\System32\Notepad.exe";
    //或者
    String file = @"c:WindowsSystem32NotePad.exe";
    

    字符串是不可变的

    String对象最重要的一点就是不可变。也就是说,字符串一经创建就不可以更改。意味着,它允许在一个字符串上执行各种操作,而不实际的更改这个字符串。如果需要频繁的更改字符串,请使用StringBuilder类。

    比较字符串

    强烈建议使用EqualsCompare等方法,不适用CompareTo==!=等操作符。

    字符串留用

    C#默认不启用字符串留用

    高效构造字符串

    使用StringBuilder类。

    StringBuilder sb = new StringBuilder();
    

    有多个构造器,下面解释一些概念

    • 最大容量

      一个Int32值,指定了能放到字符串中的最大字符数

    • 容量

      指定了有StringBuilder维护的字符串的长度。如果事先知道要在StringBuilder中放入多少个字符,那么构造StringBilder时,应该自己设置容量。

    • 字符数组

      一个有char结构构成的数组,负责维护字符串的字符内容。

      public static void Go() {
      // Construct a StringBuilder to do string manipulations.
      StringBuilder sb = new StringBuilder();

      // Perform some string manipulations using the StringBuilder.
      sb.AppendFormat("{0} {1}", "Jeffrey", "Richter").Replace(" ", "-");

      // Convert the StringBuilder to a String in
      // order to uppercase all the characters.
      String s = sb.ToString().ToUpper();

      // Clear the StringBuilder (allocates a new Char array).
      sb.Length = 0;

      // Load the uppercase String into the StringBuilder,
      // and do more manipulations.
      sb.Append(s).Insert(8, "Marc-");

      // Convert the StringBuilder back to a String.
      s = sb.ToString();

      // Display the String to the user.
      Console.WriteLine(s); // "JEFFREY-Marc-RICHTER"
      }

    获取对象的字符串表示:ToString

    Microsoft在FCL中定义的许多类型都能同时识别几种格式。例如,DateTime类型支持用d标识短日期,用D标识长日期,用g标识常规,用M标识月日,用S标识排序,用Y标识年月。
    所有内建值类型都支持C标识货币格式,用D标识十进制格式,用E标识科学记数法,用G标识常规模式,用N标识数字格式,用P标识百分数,X标识十六进制。

    解析字符串来获取对象:Parse

    能解析字符串的任何类型都提供了公共静态方法Parse。方法获取一个String并获取类型的实例。使用方法很简单

    // 调用失败,因为解析的字符串包含空格
    Int32 x= Int32.Pares(" 123",NumberStylesNone,null);
    

    字符串作为最常用的对象,使用起来还是没有什么难度。有一些难度的听都没听说过,比如最后的安全字符串。努力吧。

  • 相关阅读:
    MSP430F149学习之路——蓝牙模块
    MSP430F149学习之路——SPI
    MSP430推荐网站
    MSP430F149学习之路——UART
    MSP430F149学习之路——比较器Comparaor_A
    MSP430F149学习之路——PWM信号
    MSP430F149学习之路——捕获/比较模式
    MSP430F149学习之路——时钟1
    CUDA学习笔记(三)——CUDA内存
    CUDA学习笔记(一)——CUDA编程模型
  • 原文地址:https://www.cnblogs.com/kui0621/p/4921965.html
Copyright © 2011-2022 走看看