好的,我知道执行以下操作会在_
上创建一个字符串拆分数组:
<cfset theString = "get_the_point">
<cfset thePieces = theString.Split("_{1}")>
但是,我如何才能获得数组中的第3项,而不必创建一个评估数组的新变量,如:
<cfset theThirdPiece = thePieces[3]>
我不知道的.Split()
是否可以返回我正在寻找的具体项目?这非常简单,因为我在文档中找不到任何内容。或者我错了。
答案 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 +