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

如何在Freemarker模板中将长字符串按34字符长度拆分?

在Freemarker模板中按固定长度拆分长字符串

要在Freemarker里把长字符串按每34个字符拆分,直接用模板自带的字符串内建函数结合循环指令就能实现,不需要额外工具类。

实现步骤与代码示例

假设原字符串存在变量longStr中,拆分长度设为34,完整模板代码如下:

<#assign longStr = "1234567890**A**234567890**B**234567890**C**234567890**D**234567890**E**234567890**F**234567890**G**234567890**H**234567890**I**234567890**J**234567890**K**234567890**L**234567890**M**234567890" />
<#assign splitLength = 34 />
<#assign totalLength = longStr?length />
<#assign segments = [] />

<#list 0..<(totalLength + splitLength - 1)?intdiv(splitLength) as index>
    <#assign start = index * splitLength />
    <#assign end = (index + 1) * splitLength />
    <#if end > totalLength>
        <#assign end = totalLength />
    </#if>
    <#assign segments = segments + [longStr?substring(start, end)] />
</#list>

<!-- 输出用空格分隔的拆分结果 -->
${segments?join(" ")}

代码说明

  1. 变量初始化:定义原字符串、拆分长度,计算字符串总长度,同时创建空列表存拆分后的分段。
  2. 循环分段截取:通过#list遍历所有分段索引,每次计算当前段的起止位置:
    • 起始位置为索引×拆分长度
    • 结束位置为(索引+1)×拆分长度,若超过字符串总长度则取总长度
    • 用?substring(start, end)截取当前段并加入列表
  3. 结果拼接输出:用?join(" ")把列表中的分段用空格连接,得到目标格式。

示例输出结果

运行代码后,输出与预期完全一致:

1234567890**A**234567890**B**234567890**C**234 567890**D**234567890**E**234567890**F**2345678 90**G**234567890**H**234567890**I**234567890**J**2 34567890**K**234567890**L**234567890**M**23456 7890

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:15:32