You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#将字符串"123456"格式化为"12-34-56"?

字符串格式化方案:将"123456"转为"12-34-56"

你的代码无法生效的原因是:string.Format("00-00-00", "123456") 中的格式字符串00-00-00是数值类型格式化规则,但你传入的第二个参数是字符串,string.Format会直接输出原字符串,不会应用数值格式。

以下是几种可行的解决方案:

方案一:转为数值后应用格式

先将字符串转为数值类型,再使用数值格式化规则:

string input = "123456";
if (long.TryParse(input, out long num))
{
    string formatted = string.Format("{0:00-00-00}", num);
    // 结果为 "12-34-56"
}

注意:如果输入字符串可能包含非数字字符,需要先做有效性校验,避免转换失败。

方案二:直接字符串拆分拼接

如果能确定输入是固定6位的数字字符串,直接拆分后拼接更高效:

string input = "123456";
if (input.Length == 6)
{
    string formatted = $"{input.Substring(0, 2)}-{input.Substring(2, 2)}-{input.Substring(4, 2)}";
    // 结果为 "12-34-56"
}

方案三:正则表达式替换

用正则分组匹配并替换,适合更灵活的场景(比如输入可能有其他分隔符):

using System.Text.RegularExpressions;

string input = "123456";
string formatted = Regex.Replace(input, @"(\d{2})(\d{2})(\d{2})", "$1-$2-$3");
// 结果为 "12-34-56"

内容的提问来源于stack exchange,提问作者Canon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:15:15