You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将字符串去空格后按指定长度n分割为若干块?

字符串处理解决方案

当然可以!我来帮你搞定这个字符串处理需求,先拆解清楚逻辑,再给你具体的实现代码~

需求拆解

你的需求可以拆成三个明确的步骤:

  1. 先把原字符串里的所有空格去掉,得到一段无空格的连续字符串
  2. 将这段无空格字符串分割成每个块长度为n的片段(最后一个块的长度可以小于n)
  3. 把这些分割好的片段用空格拼接起来,得到最终结果

拿你举的例子来说:

  • 原字符串:msg = 'hello world'
  • 步骤1处理后得到:'helloworld'(长度为10)
  • 当n=7时,分割成['hellowo', 'rld'],最后拼接成'hellowo rld'
    (注:你给出的示例结果是'hellowo orld',可能是笔误,不过核心逻辑是一致的)

代码实现(Python)

方法一:直观分步实现

这种方式逻辑清晰,适合新手理解每一步的操作:

def process_message(msg, chunk_length):
    # 步骤1:移除所有空格
    no_space_str = msg.replace(" ", "")
    # 步骤2:按指定长度分割字符串
    chunks = []
    for i in range(0, len(no_space_str), chunk_length):
        chunks.append(no_space_str[i:i+chunk_length])
    # 步骤3:用空格连接所有块
    return " ".join(chunks)

# 测试示例
original_msg = 'hello world'
n = 7
result = process_message(original_msg, n)
print(result)  # 输出: hellowo rld

方法二:简洁一行代码

如果追求代码的简洁性,可以把所有逻辑压缩成一行:

original_msg = 'hello world'
n = 7
result = " ".join([original_msg.replace(" ", "")[i:i+n] for i in range(0, len(original_msg.replace(" ", "")), n)])
print(result)  # 同样输出: hellowo rld

扩展说明

  • 这个方法不仅适用于单个空格的情况,不管原字符串里有多少个连续空格,replace(" ", "")都会全部移除
  • 如果n的值大于无空格字符串的长度,那么结果就是无空格字符串本身(不会分割)

内容的提问来源于stack exchange,提问作者locrian.elder

火山引擎 最新活动