C# 实现数字字符串左补齐 0 的 6 种方法

Coding-149

前言

嗨,大家好!

在我们的编程旅程中,常常会遇到需要将数字字符串左补齐 0 的情况。

例如,订单号 D202411190001,整洁和统一的格式不仅让人眼前一亮,还能帮助老板快速了解当天销售了多少订单。

这种格式化需求在实际开发中相当普遍。

在 C# 中,实现数字字符串左补齐 0 主要有这 6 种方法,我们一起来看看吧!

1. String.PadLeft

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

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() 类似。

int number = 42;
string paddedNumber = $"{number:D5}"; // 结果是 "00042"

4. ToString

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

int number = 42;
string paddedNumber = number.ToString("D5"); // 结果是 "00042"

5. StringBuilder

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

示例
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 方法是一个非常好的选择

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

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

总结

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

  • PadLeft:简单易用,适合大多数情况
  • Format、插值和ToString:灵活多样,适用于各种数字类型的字符串
  • StringBuilder:适用于需要高效构建字符串的场景
  • LINQ:适合喜欢函数式编程风格的程序员

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

好了,今天的分享就到这里啦,如果觉得有用,别忘了点个【赞与在看】哦,你的支持是我最大的动力!

最后,如果你有更好的想法或建议,欢迎留言讨论!

往期精彩

  1. 把 C# 里的 HttpClient 封装起来,告别复杂的配置,让 Restful API 调用更轻松更高效
  2. C#12 中 5 个节省你开发时间的的改进
  3. C# 静态类,高手不想让你知道的 15 个真相
  4. 封装一个 C# 范围判断函数,从此告别重复编写范围判断代码的烦恼
  5. 用 C# Stopwatch 计时,让代码性能飞起来!
  6. 轻装上阵,Visual Studio LocalDB:.NET 程序员的本地数据库神器
  7. 封装一个C#万能基础数据类型转换器,一招解决所有基础类型转换烦恼
  8. 闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
  9. 常用的 4 种 ORM 框架(EF Core,SqlSugar,FreeSql,Dapper)对比总结
  10. C# AutoMapper 10个常用方法总结
  11. C# 7个方法比较两个对象是否相等
  12. C# 去掉字符串最后一个字符的 4 种方法

我是老杨,一个执着于编程乐趣、至今奋斗在一线的 10年+ 资深研发老鸟,是软件项目管理师,也是快乐的程序猿,持续免费分享全栈实用编程技巧、项目管理经验和职场成长心得!欢迎点击下方卡片关注老杨的公众号(名称:代码掌控者),更多干货等你来!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值