.NET 技巧 6 种方式实现数字字符串左补零

前言

在编程旅程中,常常会遇到需要将数字字符串左补齐 0 的情况。例如,订单号 D202411190001,整洁和统一的格式不仅让人眼前一亮,还能帮助老板快速了解当天销售了多少订单。

这种格式化需求在实际开发中相当普遍。在 C# 中,实现数字字符串左补齐 0 主要有这 6 种方法,我们一起来看看吧!

1、String.PadLeft

PadLeft 方法是一种简单直接的方式,可以在字符串的左侧填充指定的字符,直到达到所需的总长度。

csharp 复制代码
string number = "42";  
string paddedNumber = number.PadLeft(5, '0'); // 结果是 "00042"  

2、String.Format

String.Format() 方法允许我们格式化数字,使其在左侧填充 0,保持整齐的外观。

int number = 42; string paddedNumber = String.Format("{0:D5}", number); // 结果是 "00042"

3、插值字符串

如果你使用的是 C# 6.0 或更高版本,插值字符串是一种更简洁的写法,功能与 String.Format() 类似。

csharp 复制代码
int number = 42;  
string paddedNumber = $"{number:D5}"; // 结果是 "00042"  

4、ToString

你也可以直接使用 ToString() 方法与格式字符串进行补齐。

csharp 复制代码
int number = 42;  
string paddedNumber = number.ToString("D5"); // 结果是 "00042"  

5、StringBuilder

StringBuilder 类提供了一种高效的方式来构建字符串,可以用于在字符串左侧添加指定数量的字符。这种方法特别适合需要高效构建字符串的场景

示例

csharp 复制代码
string number = "123";  
int totalLength = 8;  
char paddingChar = '0';  

StringBuilder sb = new StringBuilder();  
int paddingLength = totalLength - number.Length;  

for (int i = 0; i < paddingLength; i++)  
{  
    sb.Append(paddingChar);  
}  

sb.Append(number);  

string paddedNumber = sb.ToString();  

Console.WriteLine(paddedNumber); // 输出: 00000123  

6、LINQ

如果你想处理的是一个字符串数组,使用 LINQ 方法是一个非常好的选择

csharp 复制代码
string[] numbers = { "1", "23", "456" };  
string[] paddedNumbers = numbers.Select(n => n.PadLeft(5, '0')).ToArray();   

// 输出: ["00001", "00023", "00456"]  

总结

以上这些方法都可以有效地实现数字字符串的左补齐 0:

PadLeft:简单易用,适合大多数情况

Format、插值和ToString:灵活多样,适用于各种数字类型的字符串

StringBuilder:适用于需要高效构建字符串的场景

LINQ:适合喜欢函数式编程风格的程序员

当然,对于更复杂的需求,你也可以自定义自己的补齐方法。希望这些方法能帮助你在日常开发中更加得心应手!

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!

作者:代码掌控者

出处:mp.weixin.qq.com/s/T37wNTcQ2k3jBWlLVt8fqw

声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

相关推荐
PfCoder5 小时前
C#中定时器之System.Timers.Timer
c#·.net·visual studio·winform
一点程序6 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
怪兽源码8 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
csdn_aspnet9 小时前
ASP.NET Core 中的依赖注入
后端·asp.net·di·.net core
ahxdyz10 小时前
.NET平台MCP
ai·.net·mcp
昊坤说不出的梦10 小时前
【实战】监控上下文切换及其优化方案
java·后端
疯狂踩坑人10 小时前
【Python版 2026 从零学Langchain 1.x】(二)结构化输出和工具调用
后端·python·langchain
の天命喵星人10 小时前
.net 使用NLog记录日志
.net
绿荫阿广11 小时前
将SignalR移植到Esp32—让小智设备无缝连接.NET功能拓展MCP服务
.net·asp.net core·mcp