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

如何在Freemarker模板中将字符串按34长度拆分并限制4段

Freemarker实现固定长度分段截断需求

需求回顾

将任意长度字符串按34字符为一段拆分,最多保留4段(总长度不超过136字符),超出部分直接截断;长度不足34字符时保持原样,段间用空格分隔。

实现方案

利用Freemarker的字符串截取函数与循环指令组合实现,核心逻辑分为两步:

  1. 先将原字符串截断至最大允许长度(34×4=136字符),减少后续处理的冗余计算
  2. 通过循环遍历4次,每次截取34字符的片段,将片段用空格拼接成最终结果

代码示例

假设待处理字符串变量为inputStr,模板代码如下:

<#-- 1. 截断至最大允许长度:136字符(4×34) -->
<#assign limitedStr = inputStr?length > 136 ? inputStr?substring(0, 136) : inputStr>

<#-- 2. 分段拼接 -->
<#assign segmentedResult = "">
<#list 0..3 as segmentIndex>
    <#assign start = segmentIndex * 34>
    <#if start < limitedStr?length>
        <#assign segment = limitedStr?substring(start, start + 34)>
        <#assign segmentedResult = segmentedResult + (segmentIndex == 0 ? "" : " ") + segment>
    </#if>
</#list>

<#-- 输出最终结果 -->
${segmentedResult}

示例验证

  • 长字符串场景:输入超长字符串时,先截断前136字符,再拆分为4个34字符的片段,用空格分隔,结果与需求示例完全匹配
  • 短字符串场景:输入长度小于34的字符串时,limitedStr即为原字符串,循环仅执行第一次截取,直接返回原字符串,符合需求

内容的提问来源于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.05 17:40:31