news 2026/1/2 8:43:00

C#字符串操作:11个必备方法全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#字符串操作:11个必备方法全解析

一、最常用的11个字符串方法

1.IndexOf()- 查找字符位置

csharp

string str = "abcdefgabc"; Console.WriteLine(str.IndexOf("a")); // 0(首次出现位置) Console.WriteLine(str.IndexOf("h")); // -1(未找到) Console.WriteLine(str.IndexOf("bc")); // 1(子串位置) Console.WriteLine(str.IndexOf("f", 4)); // 5(从索引4开始找)

2.Contains()- 检查是否包含

csharp

Console.WriteLine(str.Contains("fg")); // True Console.WriteLine(str.Contains("he")); // False

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

csharp

Console.WriteLine("Hello".ToUpper()); // HELLO Console.WriteLine("HELLO".ToLower()); // hello

4.StartsWith()/EndsWith()- 检查开头结尾

csharp

string str2 = "张三大师傅"; Console.WriteLine(str2.StartsWith("张三")); // True Console.WriteLine(str2.EndsWith("师傅")); // True

5.IsNullOrEmpty()- 空值检查

csharp

string str3 = ""; Console.WriteLine(string.IsNullOrEmpty(str3)); // True str3 = null; Console.WriteLine(string.IsNullOrEmpty(str3)); // True str3 = " "; Console.WriteLine(string.IsNullOrEmpty(str3)); // False(有空格) // 建议用:IsNullOrWhiteSpace()

6.Equals()- 字符串比较

csharp

Console.WriteLine("abc".Equals("abc")); // True Console.WriteLine(string.Equals("ABC", "abc")); // False(区分大小写) Console.WriteLine(string.Equals("ABC", "abc", StringComparison.OrdinalIgnoreCase)); // True

7.Substring()- 截取字符串

csharp

Console.WriteLine("张三大师傅".Substring(1, 3)); // 三大师 Console.WriteLine("Hello".Substring(2)); // llo(从索引2到最后)

8.Split()- 分割字符串

csharp

string str4 = "2025/12/10"; string[] ss = str4.Split('/'); Console.WriteLine(ss[0]); // 2025 Console.WriteLine(ss[1]); // 12 Console.WriteLine(ss[2]); // 10

9.Remove()- 删除字符

csharp

Console.WriteLine("2025/12/10".Remove(1, 4)); // 2/12/10 Console.WriteLine("2025/12/10".Remove(3)); // 202(只保留前3个)

10.Concat()- 拼接字符串

csharp

Console.WriteLine(string.Concat("张三", "李四", "王五")); // 张三李四王五

11.Replace()- 替换字符

csharp

Console.WriteLine("2025/12/10".Replace("2025", "2026")); // 2026/12/10 Console.WriteLine("a b c".Replace(" ", "")); // abc

二、其他重要方法补充

12.LastIndexOf()- 从后往前找

csharp

Console.WriteLine("abcdefgabc".LastIndexOf("a")); // 7(最后出现的a)

13.Join()- 连接字符串数组

csharp

Console.WriteLine(string.Join("-", "a", "b", "c")); // a-b-c string[] arr = { "苹果", "香蕉", "橙子" }; Console.WriteLine(string.Join("、", arr)); // 苹果、香蕉、橙子

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

csharp

char[] cl = new char[15]; "2025/12/10".CopyTo(1, cl, 5, 6); // 结果:cl[5..10] = "025/12"

15.Format()- 字符串格式化

csharp

string name = "张三"; double gz = 10000; Console.WriteLine(string.Format("姓名:{0}; 工资:{1}", name, gz)); Console.WriteLine(string.Format("{0:C2}", gz)); // ¥10,000.00(货币格式) Console.WriteLine(string.Format("{0:F2}", 3.14159)); // 3.14(保留2位小数)

16.ToCharArray()- 转为字符数组

csharp

char[] chars = "Hello".ToCharArray(); foreach (char c in chars) { Console.Write(c + "-"); // H-e-l-l-o- }

三、常用方法分类总结

🔍 查找类

方法用途返回值
IndexOf()查找字符/子串首次出现位置索引值(-1为未找到)
LastIndexOf()从后往前查找索引值
Contains()检查是否包含bool

🔄 转换类

方法用途示例
ToUpper()转大写"abc"→"ABC"
ToLower()转小写"ABC"→"abc"
ToCharArray()转字符数组"Hi"→['H','i']

✂️ 截取操作类

方法用途示例
Substring()截取子串"Hello".Substring(1,3)→"ell"
Split()分割字符串"a,b,c".Split(',')→["a","b","c"]
Remove()删除部分字符"Hello".Remove(1,3)→"Ho"

🔗 连接与替换

方法用途示例
Concat()连接多个字符串Concat("a","b")→"ab"
Join()用分隔符连接数组Join("-",["a","b"])→"a-b"
Replace()替换字符/子串"abc".Replace("b","x")→"axc"

✅ 检查与比较

方法用途示例
StartsWith()是否以...开头"Hello".StartsWith("He")→true
EndsWith()是否以...结尾"Hello".EndsWith("lo")→true
Equals()比较是否相等"a".Equals("A")→false
IsNullOrEmpty()检查空或nullIsNullOrEmpty("")→true

📝 格式化类

方法用途示例
Format()格式化字符串Format("{0:C}",100)→"¥100.00"

四、快速参考表(最常用)

csharp

// 1. 查找位置 int pos = str.IndexOf("查找内容"); // 2. 检查包含 bool has = str.Contains("内容"); // 3. 大小写转换 string upper = str.ToUpper(); string lower = str.ToLower(); // 4. 检查开头结尾 bool starts = str.StartsWith("开头"); bool ends = str.EndsWith("结尾"); // 5. 空值检查 bool isEmpty = string.IsNullOrEmpty(str); bool isBlank = string.IsNullOrWhiteSpace(str); // 6. 字符串比较 bool equal = str1.Equals(str2); bool equalIgnoreCase = string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase); // 7. 截取子串 string sub = str.Substring(开始位置, 长度); // 8. 分割字符串 string[] parts = str.Split(分隔符); // 9. 删除字符 string removed = str.Remove(开始位置, 删除长度); // 10. 拼接字符串 string combined = string.Concat(str1, str2, str3); // 11. 替换内容 string replaced = str.Replace("旧", "新");

五、特别提醒

易错点:

  1. IsNullOrEmpty()vsIsNullOrWhiteSpace()

    • IsNullOrEmpty(" ")False(有空格)

    • IsNullOrWhiteSpace(" ")True(更好的选择)

  2. 字符串比较

    • ==运算符:对于字符串比较内容

    • Equals()方法:更明确,可以指定比较规则

  3. Substring()索引从0开始

    csharp

    "Hello".Substring(1, 3) // "ell"(索引1开始,取3个)

性能建议:

  • 大量字符串拼接使用StringBuilder

  • 频繁查找使用Contains()IndexOf() > -1更语义化

  • 字符串比较考虑使用OrdinalOrdinalIgnoreCase提高性能


总结卡片

text

🔍 找位置:IndexOf, LastIndexOf ✅ 查包含:Contains, StartsWith, EndsWith 🔄 改格式:ToUpper, ToLower ✂️ 切分片:Substring, Split, Remove 🔗 连起来:Concat, Join, Replace 📊 比一比:Equals, Compare ⚠️ 检空值:IsNullOrEmpty, IsNullOrWhiteSpace

记住这些方法,就能应对90%的字符串操作需求! 🎯

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/30 22:46:27

Spring AOP场景2——数据脱敏(附带源码)

在白嫖的时候,希望你会内疚,一键三连吧,源码在最后,自取在白嫖的时候,希望你会内疚,一键三连吧,源码在最后,自取在白嫖的时候,希望你会内疚,一键三连吧&#…

作者头像 李华
网站建设 2026/1/1 13:12:45

linux知识点-服务相关

待整理,占位 chkconfig 以supervisord服务脚本为例: 第1步:把上面的脚本放在/etc/init.d/文件 ln -s ./supervisord /etc/init.d/supervisord第2步:将启动脚本权限改为可执行。 chmod ax /etc/init.d/supervisord第3步&#xff1…

作者头像 李华
网站建设 2025/12/13 5:24:37

基于springboot会议室管理系统的设计与实现-计算机毕设 附源码 30986

springboot会议室管理系统 摘要 随着企业规模的扩大和业务交流需求的增长,会议室作为企业内部沟通与协作的重要场所,其管理效率直接关系到企业的运营质量。传统的人工管理和纸质预订方式已经难以满足现代办公的需求,因此开发一套智能化、信息…

作者头像 李华
网站建设 2025/12/17 19:13:14

Python 第三方库的安装与卸载指南

一、第三方库安装方法 1. pip 工具安装(推荐) pip 是 Python 官方的包管理工具,几乎所有主流第三方库都支持 pip 安装。基本语法如下: pip install 库名称 如果需要指定版本,可以使用: pip install 库…

作者头像 李华
网站建设 2025/12/17 19:13:11

RustRover 新建项目的前提之一: Install Rustup

https://www.jetbrains.com/help/rust/rust-toolchain.html#install-rust-project-wizard (时间有点长。) https://rustup.rs/ curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh Windows环境 https://rust-lang.org/tools/install/ 卸载 r…

作者头像 李华