NET基本字符串操作

介绍
        应用程序经常通过构造基于用户输入的消息来响应用户。例如,网站用包含用户名的专用问候语来响应新登录的用户的情况并不少见。System.String 和 System.Text.StringBuilder 类中的多个方法使您可以动态构造要在用户界面中显示的自定义字符串。这些方法也帮助您执行许多基本字符串操作,如从字节数组创建新字符串,比较字符串的值和修改现有的字符串。

创建新字符串
        .NET Framework 在 System.String 类中提供了几个方法,这些方法通过合并多个字符串、字符串数组或对象来创建新的字符串对象。下表列出了几个有用的方法。
    方法名        使用
    String.Format    从一组输入对象生成格式化的字符串。
    String.Concat    从两个或多个字符串生成字符串。
    String.Join    通过合并字符串数组生成新字符串。
    String.Insert    通过将一个字符串插入到现有字符串的指定索引处生成新的字符串。
    String.CopyTo    将一个字符串中的指定字符复制到一个字符数组中的指定位置。

剪裁和移除字符
        如果将一个句子分析成单个的单词,则最后的结果可能是单词的一端或另一端带有空格(也称为空白)。在这种情形下,可以使用 System.String 类中的剪裁方法之一来从字符串中的指定位置移除任何数量的空格或其他字符。
    方法名            使用
    String.Trim        从字符串的开头和结尾处移除空白。
    String.TrimEnd        从字符串的结尾处移除在字符数组中指定的字符。
    String.TrimStart    从字符串的开头移除在字符数组中指定的字符。
    String.Remove        从字符串中的指定索引位置移除指定数量的字符。

填充字符串
        使用下列 String 方法之一创建新的字符串,其中包含原始字符串以及用于填充原始字符串使其达到指定总长度的前导或尾随字符。填充字符可以是空格或指定字符,因此可显示为右对齐或左对齐。  
    String.PadLeft        用前导字符填充字符串使其达到指定的总长度。
    String.PadRight        用尾随字符填充字符串使其达到指定的总长度。

比较字符串
    String.Compare        比较两个字符串的值。返回整数值。
    String.CompareOrdinal    比较两个字符串而不考虑本地区域性。返回整数值。
    String.CompareTo    将当前字符串对象与另一个字符串进行比较。返回整数值。
    String.StartsWith    确定一个字符串是否以传递的字符串开头。返回布尔值。
    String.EndsWith        确定一个字符串是否以传递的字符串结尾。返回布尔值。
    String.Equals        确定两个字符串是否相同。返回布尔值。
    String.IndexOf        返回字符或字符串的索引位置,索引位置从正在检查的字符串的开头开始。返回整数值。
    String.LastIndexOf    返回字符或字符串的索引位置,索引位置从正在检查的字符串的结尾开始。返回整数值。

更改大小写
        如果编写接受用户输入的应用程序,您可能无法确定他或她是使用大写还是小写来输入数据。因为比较字符串和字符的方法是区分大小写的,所以在将用户输入的字符串与常数值进行比较之前,应转换这些字符串的大小写。可以很容易更改字符串的大小写。下表描述了两个更改大小写的方法。每个方法都提供一个接受区域性的重写。
    String.ToUpper        将字符串中的所有字符转换为大写。
    String.ToLower        将字符串中的所有字符转换为小写。

使用 StringBuilder 类
        String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
        通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例,正如下面的示例中所阐释的那样。
        StringBuilder MyStringBuilder = new StringBuilder("Hello World!");

设置容量和长度
    虽然 StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值。此值称为该对象的容量,不应将它与当前 StringBuilder 对象容纳的字符串长度混淆在一起。例如,可以创建 StringBuilder 类的带有字符串“Hello”(长度为 5)的一个新实例,同时可以指定该对象的最大容量为 25。当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder 类的容量。下面的示例指定可以将 MyStringBuilder 对象扩充到最大 25 个空白。
        StringBuilder MyStringBuilder = new StringBuilder("Hello World!", 25); 
    另外,可以使用读/写 Capacity 属性来设置对象的最大长度。下面的示例使用 Capacity 属性来定义对象的最大长度。
        MyStringBuilder.Capacity = 25;
    EnsureCapacity 方法可用来检查当前 StringBuilder 的容量。如果容量大于传递的值,则不进行任何更改;但是,如果容量小于传递的值,则会更改当前的容量以使其与传递的值匹配。
    也可以查看或设置 Length 属性。如果将 Length 属性设置为大于 Capacity 属性的值,则自动将 Capacity 属性更改为与 Length 属性相同的值。如果将 Length 属性设置为小于当前 StringBuilder 对象内的字符串长度的值,则会缩短该字符串。
  
   修改 StringBuilder 字符串
    下表列出了可以用来修改 StringBuilder 的内容的方法。
    StringBuilder.Append        将信息追加到当前 StringBuilder 的结尾。
    StringBuilder.AppendFormat    用带格式文本替换字符串中传递的格式说明符。
    StringBuilder.Insert        将字符串或对象插入到当前 StringBuilder 对象的指定索引处。
    StringBuilder.Remove        从当前 StringBuilder 对象中移除指定数量的字符。
    StringBuilder.Replace        替换指定索引处的指定字符。   

分析字符串
    分析数值字符串
        所有的数字类型都有一个静态 Parse 方法,可用于将数字类型的字符串表示形式转换为实际的数字类型。这些方法可用于分析那些使用数字格式字符串中提及的格式设置说明符之一所产生的字符串。
        用于表示货币符号、千位分隔符和小数点的字符均在格式提供程序中定义。Parse 方法接受格式提供程序,允许您指定和显式分析特定区域性字符串。如果未指定格式提供程序,则使用与当前线程关联的提供程序。
    示例代码:
        string MyString = "12345";
        int MyInt = int.Parse(MyString);
    NumberStyles 枚举指示要分析的字符串的允许格式。可使用此枚举来分析包含货币符号、小数点、指数、括号等的字符串。
    NumberStyles.AllowCurrencySymbol 指定应将数字分析为货币而不是小数。
    NumberStyles 枚举使用当前区域性指定的字符来辅助分析。

分析日期和时间字符串
        分析方法将日期和时间的字符串表示形式转换为等效的 DateTime 对象。Parse 和 TryParse 方法可转换日期和时间的若干常用表示形式的任何一种。ParseExact 和 TryParseExact 方法可转换符合日期和时间格式字符串所指定的模式的字符串表示形式。
         分析受格式提供程序的属性影响,该格式提供程序将提供诸如用作日期和时间分隔符的字符串以及月份、日和纪元的名称等信息。格式提供程序是当前的 DateTimeFormatInfo 对象,其由当前线程区域性隐式提供或由分析方法的 IFormatProvider 参数显式提供。对于 IFormatProvider 参数,可指定一个表示区域性的 CultureInfo 对象或指定一个 DateTimeFormatInfo 对象。
    示例代码:
        CultureInfo MyCultureInfo = new CultureInfo("de-DE");
        string MyString = "12 Juni 2002";
        DateTime MyDateTime = DateTime.Parse(MyString, MyCultureInfo);
        Console.WriteLine(MyDateTime);

分析枚举字符串
        您可以使用静态 Parse 方法将字符串的值初始化为枚举类型。此方法接受正在分析的枚举类型、要分析的字符串和指明分析是否区分大小写的可选 Boolean 标志。分析的字符串可包含几个用逗号隔开的值,值的前后可留有一个或多个空格。当字符串包含多个值时,返回对象的值是所有与按位“或”运算组合的指定值。
    string MyString = "Thursday";
    DayOfWeek MyDays = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), MyString);
    Console.WriteLine(MyDays);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值