C#中字符串方法示例

1. Concat() - 字符串拼接

string s4 = string.Concat();
Console.WriteLine(s4); // 输出空字符串
  • 功能:拼接多个字符串

  • 重载形式:支持 0 个、多个字符串参数或实现IEnumerable<string>的集合

  • 注意:调用无参版本会返回空字符串""

2. Contains() - 判断子串存在

bool b = "asfasfas".Contains("a"); // true
  • 功能:检查字符串是否包含指定子串

  • 参数:待查找的字符串(非字符)

  • 注意:

    • 区分大小写

    • 空字符串参数会返回true

3. CopyTo() - 复制到字符数组

string source = "abc";
char[] dest = new char[5];
source.CopyTo(1, dest, 2, 2); // dest变为 {'\0', '\0', 'b', 'c', '\0'}
  • 参数:

    1. 源字符串起始索引(从 0 开始)

    2. 目标字符数组

    3. 目标数组起始位置

    4. 复制的字符数量

  • 异常:索引越界时抛出ArgumentOutOfRangeException

4-5. ToUpper() / ToLower() - 大小写转换

"Hello".ToUpper(); // "HELLO"
"WORLD".ToLower(); // "world"
  • 特点:

    • 基于当前线程的文化(Culture)进行转换

    • 对非字母字符无影响

    • 返回新字符串,原字符串不变

6. Replace() - 替换字符 / 子串

"Hello".Replace('l', 'L'); // "HeLLo"
"abc".Replace("ab", "AB"); // "ABc"
  • 重载:支持字符替换和字符串替换

  • 注意:

    • 替换所有匹配项

    • 参数为null时抛出异常

7-8. StartsWith() / EndsWith() - 前缀 / 后缀检查

"Hello".StartsWith("He"); // true
"World".EndsWith("ld");   // true
  • 参数:待检查的字符串(区分大小写)

  • 重载:支持指定比较规则(如忽略大小写)

9. Equals() - 字符串相等比较

string a = "test";
string b = "test";
a.Equals(b); // true (值相等)
  • 比较规则:

    • 字符串类型比较值(不同于引用类型比较引用)

    • 等同于==运算符

    • 重载支持指定比较规则(如StringComparison.OrdinalIgnoreCase

10-11. IndexOf() / LastIndexOf() - 查找子串位置

"abcabc".IndexOf("bc");    // 1 (首次出现位置)
"abcabc".LastIndexOf("bc"); // 4 (最后出现位置)
  • 参数:待查找的字符串(区分大小写)

  • 返回值:

    • 找到:第一个字符的索引

    • 未找到:-1

12. IndexOfAny() - 查找任意字符位置

"abc".IndexOfAny(new char[] { 'x', 'b' }); // 1 (首次出现'b'的位置)
  • 参数:字符数组

  • 功能:查找字符数组中任意字符首次出现的位置

13. IsNullOrEmpty() - 空值检查

string s = null;
string.IsNullOrEmpty(s); // true
  • 等价判断

    s == null || s.Length == 0

  • 注意:空格字符串(如" ")会返回false

14. Insert() - 插入子串

"abc".Insert(1, "XYZ"); // "aXYZbc"
  • 参数:

    1. 插入位置(索引)

    2. 待插入的字符串

  • 异常:索引越界时抛出ArgumentOutOfRangeException

15. Join() - 连接字符串集合

string[] arr = { "a", "b", "c" };
string.Join("-", arr); // "a-b-c"
  • 参数:

    1. 分隔符(字符串)

    2. 待连接的字符串集合

  • 重载:支持IEnumerable<string>和参数数组

16. Remove() - 删除子串

"abcdef".Remove(2);      // "ab" (从索引2开始删除)
"abcdef".Remove(2, 3);   // "abf" (从索引2开始删除3个字符)
  • 重载:

    1. Remove(startIndex) - 删除从指定位置到末尾的所有字符

    2. Remove(startIndex, count) - 删除指定范围的字符

17. Split() - 分割字符串

"a,b,c".Split(','); // 返回 ["a", "b", "c"]
  • 参数:

    1. 分隔符数组(字符或字符串)

    2. 可选参数:StringSplitOptions(如RemoveEmptyEntries

  • 注意:

    • 连续分隔符会产生空字符串

    • 空字符串分割返回包含一个空字符串的数组

18. ToCharArray() - 转换为字符数组

string s = "abc";
char[] chars = s.ToCharArray(); // ['a', 'b', 'c']
  • 功能:将字符串的每个字符复制到新数组

  • 等价操作:

    char[] chars = new char[s.Length];
    s.CopyTo(0, chars, 0, s.Length);

19. Substring() - 截取子串

"abcdef".Substring(2);      // "cdef" (从索引2到末尾)
"abcdef".Substring(2, 3);   // "cde" (从索引2开始截取3个字符)
  • 参数:

    1. 起始索引

    2. 可选参数:长度(省略则截取到末尾)

  • 异常:索引越界时抛出ArgumentOutOfRangeException

20. Trim() / TrimStart() / TrimEnd() - 去除空白

"  abc  ".Trim();       // "abc" (去除前后空格)
"  abc  ".TrimStart();  // "abc  " (去除前导空格)
"  abc  ".TrimEnd();    // "  abc" (去除尾部空格)
  • 功能:去除字符串前后的空白字符(包括空格、制表符、换行符等)

  • 重载:支持指定要去除的字符集合

字符串不可变性注意事项

所有这些方法都不会修改原字符串(字符串是不可变的),而是返回新字符串。频繁操作字符串建议使用StringBuilder以提高性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张謹礧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值