在 freemarker 中,我有一个宏 myfunc
执行以下操作:
<#macro myfunc x>
<#attempt>
<#assign x=(x?number)>
<#recover>
</#attempt>
${x!''}
</#macro>
所以,本质上,如果 x
(以字符串开头)并且可以转换为数字,然后我想将其包装在 (${x})
中否则只显示值。
我对这个解决方案很满意,除了丑陋的 <#attempt>
附带的错误日志记录。
似乎没有一种简单的方法可以在不使用<#attempt>
的情况下检查字符串是否可以转换为数字。或者我的研究步履蹒跚——我也不想在 Java 端这样做,因为我将其视为 View 代码,不属于我的模型代码。有人知道吗?
最佳答案
您可以使用正则表达式:
<#if x?matches("\\d+")>
// do something with x?number
<#else>
// do something with x
</#if>
关于java - 如何检查字符串是否可以转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40413141/