字符串操作
掌握字符串判空、拼接、格式化、类型转换
熟练使用 StringBuilder 优化频繁拼接
能处理常见的字符串业务场景
核心讲解
(1)字符串判空
三种空场景:null、""(空字符串)、全空格字符串。
最推荐:
string.IsNullOrWhiteSpace(str)覆盖所有空场景注意:判空前先判断 null,不然会空指针
(2)字符串拼接
+ 号拼接:少量拼接用,简单直观
字符串插值:
$"",C# 最推荐的方式,直观易读string.Format():占位符方式,适合模板复用
string.Join():集合拼接成字符串,指定分隔符
(3)类型转换
数字 → 字符串:
.ToString()字符串 → 数字:
int.Parse()、double.Parse()安全转换:
int.TryParse(str, out result),失败不抛异常,返回 bool
(4)StringBuilder
频繁修改字符串用,可变对象,避免产生大量临时对象,性能高。
Append():追加AppendLine():追加一行Insert():插入Remove():删除ToString():转成最终 string
操作步骤
实现字符串格式化与类型转换
对比普通拼接和 StringBuilder 的性能差异
运行验证结果
代码示例
using System.Text;
// 1. 判空
string s1 = null;
string s2 = " ";
Console.WriteLine("s1空:" + string.IsNullOrWhiteSpace(s1)); // True
Console.WriteLine("s2空:" + string.IsNullOrWhiteSpace(s2)); // True
// 2. 字符串格式化
string name = "张三";
int age = 20;
// 插值(推荐)
string str1 = $"姓名:{name},年龄:{age}岁";
Console.WriteLine(str1);
// Format方式
string str2 = string.Format("姓名:{0},年龄:{1}岁", name, age);
// 集合拼接
string[] arr = { "北京", "上海", "广州", "深圳" };
string cityStr = string.Join("、", arr);
Console.WriteLine("城市:" + cityStr);
// 3. 类型转换
int num = 123;
string numStr = num.ToString();
Console.WriteLine("数字转字符串:" + numStr + 456); // 字符串拼接
// 安全转换
string input = "abc";
int result;
bool success = int.TryParse(input, out result);
if (success)
Console.WriteLine("转换成功:" + result);
else
Console.WriteLine("转换失败");
// 4. StringBuilder 大量拼接
Console.WriteLine("\nStringBuilder拼接:");
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 10; i++)
{
sb.Append("第").Append(i).Append("条 ");
}
Console.WriteLine(sb.ToString());
Console.ReadKey();
常见误区
null 调用方法:null 字符串调用任何方法都会空指针,判空一定要先检查 null
频繁拼接用 string:循环里拼接字符串会产生大量垃圾,必须用 StringBuilder
Parse 不处理异常:用户输入的内容用 TryParse,不要直接 Parse
插值和 Format 搞混:插值用
$,Format 用{0}索引,不要混用语法
课后练习
写一个方法,接收姓名、年龄、城市,用插值格式化输出介绍
用 StringBuilder 拼接 1 到 100 的数字,用逗号分隔
实现:用户输入数字,安全转换后输出它的平方
思考:为什么 StringBuilder 比 string 拼接快?

