我正在试着分析出支票上的文本。我需要替换最后的'y‘,并添加'pesos con’。我最初尝试在'y‘处拆分字符串并加入,但结果是,当写出的数字有'y’时,可以有多个'y‘:
‘'cien seiscientos y ocho y 01/100’
期望的结果应该是:'cien mil seiscientos cincuenta y ocho pesos con 01/100‘
我尝试在每个字符(?split(''))处拆分字符串,然后从字符串的末尾开始计数,以索引第二个'y‘的位置,因为它与字符串的末尾的距离应该始终相同。
然后,我在将每个字符复制到新字符串的同时,对拆分的字符串进行迭代。如果索引等于最后一个'y‘的索引(长度为-7),我将'pesos con’添加到新字符串,而不是元素‘y’。如果索引不是最后一个'y‘的索引,我就直接复制这个字符。
不幸的是,索引似乎没有像预期的那样工作,因为我似乎不能让它在正确的位置打印出'pesos con‘。如何改进这一点以实现这一逻辑?
<#function removeY>
<#list records as check>
<#assign str = ''>
<#assign totalWordsArr = check.totalwords?split("")>
<#list totalWordsArr as x>
<#if x?index != x?length-7>
<#assign str = str + " " + x + " ">
<#elseif x?index ==x?length-7>
<#assign str = " " + str + " " + 'pesos con '>
</#if>
</#list>
<#return str>
</#list>
</#function>发布于 2020-02-08 16:59:42
我想出了这个解决方案:
<#assign x="cien mil seiscientos cincuenta y ocho y 01/100">
${x?keep_before_last(" y ")} pesos con ${x?keep_after_last(" y ")}这将带来您需要的结果:
cien mil seiscientos cincuenta y ocho pesos con 01/100https://stackoverflow.com/questions/60118912
复制相似问题