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

C#中如何实现字符串从右往左每3个字符添加空格分隔

C# 从字符串右端开始每3位插入空格实现方案

需求说明:对输入字符串做分隔处理,从最右端向左计数,每3个字符插入一个空格,示例效果:11222333 处理后输出 11 222 333。

实现方法1:纯字符串处理(通用方案,适配任意字符串)

这个方案不限制输入内容是数字,只要是字符串都能正确处理,不会出现类型转换错误:

using System.Text;

public static string SplitBy3FromRight(string input)
{
    // 空字符串或者长度不足3位直接返回原值
    if (string.IsNullOrWhiteSpace(input) || input.Length <= 3)
    {
        return input;
    }

    StringBuilder sb = new StringBuilder();
    // 计算最左侧第一个分段的长度
    int firstLen = input.Length % 3;
    if (firstLen == 0)
    {
        firstLen = 3;
    }

    // 先拼接第一个分段
    sb.Append(input[..firstLen]);

    // 后续每3个字符为一段,前面补空格
    for (int i = firstLen; i < input.Length; i += 3)
    {
        sb.Append(' ');
        sb.Append(input.Substring(i, 3));
    }

    return sb.ToString();
}

调用测试:

string res = SplitBy3FromRight("11222333");
// res值为 "11 222 333",符合预期

实现方法2:数字格式化(仅适用于纯数字字符串)

如果输入是纯数字内容,可以直接用内置的千分位格式化能力实现,代码更简洁:

string input = "11222333";
long numVal = long.Parse(input);
string res = numVal.ToString("#,##0").Replace(',', ' ');
// res值为 "11 222 333"

注意:如果输入包含非数字字符、或者数字长度超过long类型可表示的范围,不要使用这个方法,会触发转换异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:09:30