我因为一项非常简单的任务而被投入 ColdFusion。该应用程序有一些显示“帮助代码”的逻辑(我们不讨论什么是帮助代码),但是,该逻辑有问题,需要修复。给定一个两个字母的代码、一个 1-4 位数字和另一个 1-2 位数字,我需要像这样显示它们printf
调用会:
printf("%s%04d%02d", letterCode, bigNumber, smallNumber);
如果您不熟悉 printf 函数,它接受一个格式字符串(第一个参数),并根据给定的格式在其中写入其他变量。%s
意思是“写一个字符串”并且%d
意思是“写一个数字”;%0zd
意思是“写一个数字并用零填充它,所以它至少是z字符长(所以%04d
意思是“写一个数字并用零填充它,使其长度至少为 4 位)。
这里有几个例子%s%04d%02d
:
"AD", 45, 12: AD004512
"GI", 5121, 1: GI512101
"FO", 1, 0: FO000100
然而,这是我第一次使用 ColdFusion,我找不到类似的东西printf
or sprintf
格式化字符串。
另一个不再在这里工作的人诉诸了(非工作)循环,我认为最好使用库代码而不是实际修复循环,因为无论如何我可能需要再次做类似的事情。
<cfset bigNumberPadded = NumberFormat(bigNumber,"0000")>
<cfset smallNumberPadded = NumberFormat(smallNumber,"00")>
<cfoutput>#letterCode##bigNumberPadded##smallNumberPadded#<cfoutput>
或者...按照 bpanulla 的建议,并由 Leigh 纠正
<cfset args = ["AD", javacast("int", 45), javacast("int", 12)]>
<cfset output= createObject("java","java.lang.String").format("%s%04d%02d", args) >
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)