.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

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

相关推荐
Mr Aokey22 分钟前
Spring MVC参数绑定终极手册:单&多参/对象/集合/JSON/文件上传精讲
java·后端·spring
地藏Kelvin1 小时前
Spring Ai 从Demo到搭建套壳项目(二)实现deepseek+MCP client让高德生成昆明游玩4天攻略
人工智能·spring boot·后端
菠萝012 小时前
共识算法Raft系列(1)——什么是Raft?
c++·后端·算法·区块链·共识算法
长勺2 小时前
Spring中@Primary注解的作用与使用
java·后端·spring
唐青枫2 小时前
.NET AOT 详解
.net
ou.cs2 小时前
c# :this() 和 :base()区别
开发语言·c#
小奏技术3 小时前
基于 Spring AI 和 MCP:用自然语言查询 RocketMQ 消息
后端·aigc·mcp
编程轨迹3 小时前
面试官:如何在 Java 中读取和解析 JSON 文件
后端
lanfufu3 小时前
记一次诡异的线上异常赋值排查:代码没错,结果不对
java·jvm·后端
编程轨迹3 小时前
如何在 Java 中实现 PDF 与 TIFF 格式互转
后端