C# 高级教程(2)—— 深入理解字符串相关类型

        在 C# 编程中,字符串是非常常用的数据类型,它用于存储和处理文本信息。C# 中主要涉及到 System.String 类(string 是其别名)以及 System.Text.StringBuilder 类,下面我们将深入探讨它们的特性和使用方法。

一、System.String 类

System.String 类是 C# 中用于表示字符串的基本类型,string 是这个类的别名。

1. 创建字符串

我们可以通过以下方式创建一个字符串:

string s = "www.unity黑马王子.com";

上述代码创建了一个名为 s 的字符串,并将其初始化为 "www.unity黑马王子.com"

2. 获取字符串长度

可以使用 Length 属性来获取字符串的长度,示例如下:

int length = s.Length;

length 变量将存储字符串 s 中的字符数量。

3. 比较字符串是否一样

在 C# 中,可以使用 == 运算符来比较两个字符串的内容是否相同,例如:

bool isEqual = s == "www.unity黑马王子.com";

isEqual 变量将根据比较结果存储 true 或 false

4. 字符串连接

字符串连接可以使用 + 运算符来实现,示例如下:

s = "http://" + s;

        这里实际上是创建了一个新的字符串,将 "http://" 与原字符串 s 的内容连接起来,并将新字符串的引用赋值给 s

5. 访问字符串中的字符

可以使用类似索引器的语法来取得字符串中的某个字符,索引从 0 开始,例如:

char firstChar = s[0];
char fourthChar = s[3];

   firstChar 将存储字符串 s 的第一个字符,fourthChar 将存储第四个字符。

        需要注意的是,string 创建的字符串实际上是一个不可变的数据类型,一旦对字符串对象进行了初始化,该字符串就不能改变内容了。在上面的字符串连接示例中,实际上是创建了一个新的字符串,把旧字符串的内容复制到新字符串中,然后把新字符串的引用赋值为字符串的对象。因此,如果需要重复修改给定的字符串,这种方式的效率会很低。

6. 字符串的更多方法

System.String 类还提供了许多实用的方法:

  • CompareTo () 方法:用于比较字符串的内容,返回一个整数值表示比较结果。
int compareResult = s.CompareTo("another string");

  • Replace () 方法:用另一个字符或者字符串替换字符串中给定的字符或者字符串。
string newS = s.Replace('o', 'x');

  • Split () 方法:在出现给定字符的地方,把字符串拆分成一个字符串数组。
string[] parts = s.Split('.');

  • SubString () 方法:在字符串中检索给定位置的子字符串。
string subS = s.Substring(5, 10);

  • ToLower () 方法:把字符串转换成小写形式。
string lowerS = s.ToLower();

  • ToUpper () 方法:把字符串转换成大写形式。
string upperS = s.ToUpper();

  • Trim () 方法删除字符串首尾的空白字符
string trimmedS = s.Trim();

  • Concat () 方法:这是一个静态方法,用于合并字符串
string combined = string.Concat(s, " additional text");

  • CopyTo () 方法:把字符串中指定的字符复制到一个数组中。
char[] charArray = new char[10];
s.CopyTo(0, charArray, 0, 10);

  • Format () 方法:这是一个静态方法,用于格式化字符串
string formatted = string.Format("The string is: {0}", s);

  • IndexOf () 方法取得字符串第一次出现某个给定字符串或者字符的位置。
int index = s.IndexOf('w');

  • IndexOfAny () 方法:用于查找字符串中首次出现一组字符中的任意一个字符的位置。
char[] anyChars = { 'a', 'b', 'c' };
int anyIndex = s.IndexOfAny(anyChars);

  • Insert () 方法:把一个字符串实例插入到另一个字符串实例的指定索引处。
string inserted = s.Insert(5, "inserted text");

  • Join () 方法:合并字符串数组,创建一个新字符串。
string[] strArray = { "str1", "str2", "str3" };
string joined = string.Join("-", strArray);

    二、System.Text.StringBuilder 类

        System.Text.StringBuilder 类位于 System.Text 命名空间下,它是一个可变的字符串类型,适用于需要频繁修改字符串的场景。

    1. 创建 StringBuilder 对象

    有以下几种创建 StringBuilder 对象的方式:

    // 使用初始字符串创建
    StringBuilder sb = new StringBuilder("www.sikiedu.com");
    // 使用指定容量创建
    StringBuilder sb1 = new StringBuilder(20);
    // 使用初始字符串和指定容量创建
    StringBuilder sb2 = new StringBuilder("www.sikiedu.com", 100);
    

            在创建 StringBuilder 对象时,需要注意其内存占用情况。如果指定了容量,它会根据实际需要动态调整内存大小。

    2. 常用方法

    StringBuilder 类提供了一系列方法用于操作字符串:

    • Append () 方法:给当前字符串追加一个字符或字符串。
    sb.Append(" additional content");
    

    • Insert () 方法:在指定位置追加特定格式的字符串。
    sb.Insert(5, " inserted text");
    

    • Remove () 方法:从当前字符串中删除指定数量的字符。
    sb.Remove(10, 5);
    

    • Replace () 方法:在当前字符串中,用某个字符或者字符串全部替换另一个字符或者字符串。
    sb.Replace('o', 'x');
    

     

    • ToString () 方法:把当前 StringBuilder 中存储的字符串,提取成一个不可变的字符串。
    string finalString = sb.ToString();
    

            通过对 System.String 类和 System.Text.StringBuilder 类的学习,我们能够更灵活、高效地处理字符串相关的操作,根据不同的需求选择合适的字符串类型和方法,提升程序的性能和可读性。

    三·参考资料

    四·结语

            希望这篇博客能帮助你更好地理解 C# 中字符串相关的知识,如果有任何疑问,欢迎在评论区留言交流。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值