通过在ColdFusion 8中执行.split()获取第n个数组项

时间:2011-01-14 00:32:41

标签: javascript string coldfusion

好的,我知道执行以下操作会在_上创建一个字符串拆分数组:

<cfset theString = "get_the_point">
<cfset thePieces = theString.Split("_{1}")>

但是,我如何才能获得数组中的第3项,而不必创建一个评估数组的新变量,如:

<cfset theThirdPiece = thePieces[3]>

我不知道的.Split()是否可以返回我正在寻找的具体项目?这非常简单,因为我在文档中找不到任何内容。或者我错了。

3 个答案:

答案 0 :(得分:6)

如果你使用像下划线这样的简单分隔符,你可以这样做:

<cfset thePiece = listGetAt("get_the_point", 3, "_")>

所有列表函数都使用可选的分隔符参数,该参数是用作分隔符的单个字符列表。

请记住在尝试访问第n个位置之前检查列表的listLen()。

答案 1 :(得分:2)

为了完成整个画面,我建议你做一些更简单/更清洁的方法来做你需要的 - 如果你需要last项目:

<cfset thePiece = ListLast("get_the_point", "_") />
BTW,在接受者答案的评论中查看与Java相关的讨论我会注意到有一个用于拆分的本机函数:

<cfset theString = "get_the_point" />
<cfset thePieces = ListToArray(theString, "_") />

我认为它在引擎盖下使用相同的Split

答案 2 :(得分:0)

只是为了澄清它在语法上是正确的我应该指出你也可以这样做:

<cfset lastOne = theString.Split("_")[3] />

相信这只适用于CF9 +