网站首页 > 文章精选 正文
我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。
字符串拼接是将两个或多个字符串组合成一个单一字符串的过程,在项目开发中非常常见,C#也为我们提供非常多字符串拼接方式,下面一起盘点下。
01
使用加号(+)
这种方式是最直接、最简单的方式,缺点就是不利于阅读,一般用于较简单的拼接的情况。
string str1 = "Hello";
string str2 = ", world!";
string str3 = str1 + str2;
// "Hello, world!"
02
使用 String.Concat 方法
这种方式与加号(+)类似。
string str1 = "Hello";
string str2 = ", world!";
string str3 = string.Concat(str1, str2);
// "Hello, world!"
03
使用 StringBuilder 方法
使用加号(+)、 String.Concat ,每一次都会新生成一个字符串对象,导致效率低下。在大量进行字符串拼接的情况下,推荐使用StringBuilder会更高效。
StringBuilder sb = new StringBuilder();
sb.Append("Hello");
sb.Append(", ");
sb.Append("world!");
string str = sb.ToString();
// "Hello, world!"
04
使用 String.Format方法
字符串拼接一般比较推荐使用该方法,比较直观。
string name = "John";
string greeting = String.Format("Hello, {0}!", name);
// "Hello, John!"
05
使用 $ 的字符串内插
使用 $ 符号可以将变量插入到字符串中,$的方式相对String.Format的方法,更加进一步提升容易阅读。
string name = "John";
string greeting = #34;Hello, {name}!";
// "Hello, John!"
支持特殊字符串,以及运算。
string name = "Horace";
int age = 34;
Console.WriteLine(#34;He asked, \"Is your name {name}?\", but didn't wait for a reply :-{{");
// He asked, "Is your name Horace?", but didn't wait for a reply :-
Console.WriteLine(#34;{name} is {age} year{(age == 1 ? "" : "s")} old.");
{// Horace is 34 years old.
另外还可以指定字符串格式化。
double speedOfLight = 299792.458;
FormattableString message = #34;光速是 {speedOfLight:N3} km/s.";
string messageInInvariantCulture = FormattableString.Invariant(message);
Console.WriteLine(messageInInvariantCulture);
// 输出
// 光速是 299,792.458 km/s
我是编程乐趣,一个10年.Net开发经验老程序员,专注开源项目和编程知识分享。
私信回复:【888】,领取.Net视频教程。
- End -
推荐阅读
- 上一篇: Rider 2020.1 发布,要抢VS饭碗啦!
- 下一篇: 抽象语法树(AST)全流程示例解析
猜你喜欢
- 2025-05-22 一个基于C#开发的Excel转Json工具
- 2025-05-22 在C++中,如何避免出现Bug?
- 2025-05-22 C#内插字符串:一种让代码更美观的方式
- 2025-05-22 Google Docs 为代码块添加了14种新的编程语言支持
- 2025-05-22 Cobalt Strike 4.8 用户指南-第五节-获取初始访问
- 2025-05-22 C#语言编程案例-颜色码数制转换
- 2025-05-22 ASP.NET Core Web API 中的 JSON 修补程序
- 2025-05-22 C#知识|对象序列化与反序列化
- 2025-05-22 全网最全95道MongoDB面试题1万字详细解析
- 2025-05-22 透视CobaltStrike(二)—从CS到免杀框架Veil
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)