Coldfusion 在后面加上一个字;及;到列表中的最后一个元素?

Coldfusion 在后面加上一个字;及;到列表中的最后一个元素?,coldfusion,Coldfusion,我有一个列表:“苹果,鸡蛋,牛奶”,但我想在最后一个元素后面加上“和”这个词,这样它就变成了“苹果,鸡蛋,牛奶” 下面是我的想法,但我似乎遇到了麻烦,livedoc Adobe文档网站已经关闭(通常有一些有用的例子) 结果是: 不幸的是,“苹果、鸡蛋和牛奶”。也许ListInsertAt不是正确的方法?我只想使用listSetAt修改最后一项 <cfset variables.shoppinglist = listsetat(variables.shoppinglist, listle

我有一个列表:“苹果,鸡蛋,牛奶”,但我想在最后一个元素后面加上“和”这个词,这样它就变成了“苹果,鸡蛋,牛奶”

下面是我的想法,但我似乎遇到了麻烦,livedoc Adobe文档网站已经关闭(通常有一些有用的例子)


结果是:


不幸的是,“苹果、鸡蛋和牛奶”。也许ListInsertAt不是正确的方法?

我只想使用
listSetAt
修改最后一项

<cfset variables.shoppinglist = listsetat(variables.shoppinglist, listlen(variables.shoppinglist), "and " & listlast(variables.shoppinglist))>

如果您只是想将“and”添加到列表中的最后一个元素,我会将其转换为数组并更改最后一个数组项。或者像巴特杜德说的,在你展示它之前,不要把它放在列表中

<cfset shoppingList = "Apples, Eggs, Milk">
<cfset shoppingList = ListToArray(shoppingList)>
<cfset shoppingList[arrayLen(shoppingList)] = "and " & shoppingList[arrayLen(shoppingList)]>
<cfset shoppingList = ArrayToList(shoppingList)>

或在显示器上显示:

<cfset shoppingList = "Apples, Eggs, Milk">
<cfloop from="1" to="#listLen(shoppingList)#" index="i">
<cfif i gt 1>
    <cfif i eq listLen(shoppingList)>, and<cfelse>,</cfif>
</cfif>
<cfoutput>#listGetAt(shoppingList,i)#</cfoutput>
</cfloop>

,及,
#listGetAt(购物清单,i)#

另外,如果coldfusion文档已关闭。您可以使用。

在内部,列表只是一个示例。为什么不使用正则表达式替换逗号的最后一次出现

当然,这比将字符串转换为数组、循环、将另一个字符串注入数组,然后再将所有内容转换回字符串更有效

您只是在修改字符串。无需将数组、循环、条件或大量列表方法引入其中

<cfset variables.shoppinglist = reReplace(variables.shoppinglist, ",([^,]*)$", " and \1")>


我认为与其将其添加到列表中,不如在呈现列表时添加此“and”,替换最后一个逗号(因为如果有“and”的话,就不应该有逗号”)@Bartdude将逗号保留在那里是完全可以的-这两个选项在语法上都是正确的。似乎有人已经解决了这个问题:。
<cfset variables.shoppinglist = reReplace(variables.shoppinglist, ",([^,]*)$", " and \1")>