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

如何将字符串中的数字替换为对应数量的空格 适配任意输入字符串

实现思路

核心逻辑是逐字符判断输入内容,对数字字符做特殊替换:

  • 非数字字符直接保留
  • 数字字符转换为对应数值的整数,追加同等数量的空格

代码实现

Java 版本

适配Java 11及以上版本:

public class DigitToSpaceConverter {
    public static String convert(String input) {
        StringBuilder sb = new StringBuilder();
        for (char c : input.toCharArray()) {
            if (Character.isDigit(c)) {
                int spaceCount = c - '0';
                sb.append(" ".repeat(spaceCount));
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        // 测试用例1
        System.out.println(convert("AA5DD2EE3MM")); // 输出:AA     DD  EE   MM
        // 测试用例2
        System.out.println(convert("a3ee")); // 输出:a   ee
    }
}

如果使用Java 10及更低版本,替换" ".repeat(spaceCount)为手动生成空格的逻辑即可:

// 替换repeat逻辑的示例
for (int i = 0; i < spaceCount; i++) {
    sb.append(' ');
}

Python 版本

基础单数字替换版本:

def digit_to_space(input_str: str) -> str:
    res = []
    for c in input_str:
        res.append(' ' * int(c) if c.isdigit() else c)
    return ''.join(res)

# 测试
print(digit_to_space("AA5DD2EE3MM"))
print(digit_to_space("a3ee"))

支持连续多位数替换的正则版本(比如"a12b"会转为"a b"):

import re
def digit_to_space(input_str: str) -> str:
    return re.sub(r'\d+', lambda match: ' ' * int(match.group()), input_str)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:09:02