Я пытаюсь разобрать текст, который идет на проверку. Мне нужно заменить последний «у» и добавить вместо него «песо кон». Первоначально я пытался разбить строку на «у» и присоединиться, но оказывается, что может быть более одного «у», когда записанное число имеет «у», как:
'cien mil seiscientos cincuenta y ocho y 01/100 '
желаемый результат должен быть следующим:' cien mil seiscientos cincuenta y ocho pesos con 01/100 '
Я попытался разбить строку на каждый символ ( ? split ('')) и затем посчитаем от конца строки до индекса, где второе 'y' находится потому, что оно всегда должно быть на одинаковом расстоянии от конца строки.
Затем я повторил над разделенной строкой, когда я скопировал каждый символ в новую строку. Если индекс был равен индексу последнего y (длина-7), я добавил «pesos con» в новую строку вместо элемента «y». Если индекс не был последним 'y', я просто скопировал символ.
К сожалению, индексация не работает должным образом, потому что я не могу заставить ее напечатать с «песо кон» в правильном месте. Как это можно улучшить, чтобы реализовать эту логику c?
<#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>