我们想在NetSuite FreeMarker模板中按空格分割字符串,并尝试如下代码:
<#list tranline.inventorydetail?split(" ") as paragraph>
<#if paragraph_index == 0>
<tr>
<td colspan="1" >${showIndex}</td>
<td colspan="4">${tranline.item}</td>
<td align="left" colspan="6">${tranline.description}</td>
<td align="right" colspan="2">${tranline.quantityordered}</td>
<td align="right" colspan="2">${tranline.quantityremaining}</td>
<td align="right" colspan="2">${tranline.quantity}</td>
<td align="left" colspan="4">${paragraph?keep_before(",")}</td>
</tr>
<#else>
<tr>
<td colspan="1" ></td>
<td colspan="4"></td>
<td align="left" colspan="6"></td>
<td align="right" colspan="2"></td>
<td align="right" colspan="2"></td>
<td align="right" colspan="2"></td>
<td align="left" colspan="4">${paragraph?keep_before(",")}</td>
</tr>
</#if>
</#list>
但它没有生效。
以下方法也不会按空间将字符串拆分为数组:
<#list tranline.inventorydetail?split("\s+") as paragraph>
<#list tranline.inventorydetail?split("s+") as paragraph>
<#list tranline.inventorydetail?split(" ") as paragraph>
有人知道如何在NetSuite FreeeMarker模板中按空格分割字符串吗?
您可以使用somestring?word_list
在空白处拆分字符串。连续的空白字符将算作一个分隔符。请注意,它只将这些字符视为空白:空格、t
、n
、r
、f
(通常足够(。
您也可以使用?split(r's+', 'r')
,它将所有类型的UNICODE空格识别为分隔符,但是,它也有一个小问题,对于长度为0的字符串,它返回[""]
而不是[]
(因为JavaPattern.split
就是这样表现的(。