String Coldfusion-能否将字符串视为没有分隔符的列表?
我以前认为可以将一个普通字符串作为一个以“”作为分隔符的列表,但CF似乎不允许这样做。这样做:String Coldfusion-能否将字符串视为没有分隔符的列表?,string,coldfusion,String,Coldfusion,我以前认为可以将一个普通字符串作为一个以“”作为分隔符的列表,但CF似乎不允许这样做。这样做: <cfloop list="abcdef" delimiters="" index="thisLetter"> <cfoutput>#thisLetter#</cfoutput><br> </cfloop> 但是结果数组中的第一个元素是一个空字符串,因此从数组中删除它需要额外的步骤 是否有一种更优雅的方法来迭代该字符串中的所有字符,
<cfloop list="abcdef" delimiters="" index="thisLetter">
<cfoutput>#thisLetter#</cfoutput><br>
</cfloop>
但是结果数组中的第一个元素是一个空字符串,因此从数组中删除它需要额外的步骤
是否有一种更优雅的方法来迭代该字符串中的所有字符,而不必首先执行任何特殊的字符串操作,也不必使用
left()
、right()
、或mid()
?看起来这就是我想要的:
使用mid()最简单,也不太麻烦。不过,如果能够使用带有分隔符“”的CF list loop,那就太好了。我建议使用Java的:
#煤焦#
尝试使用chr(30)作为分隔符。
@AlexBaban空的第一个元素是Java=8中的一个“功能”。正如@Alex已经建议的,更新到Java 8或更高版本。在此之前,假设您使用的是Lucee,您可以将其编码为
。listcomact()
函数对ACF无效。请参见示例LIstToArray(textString,“”)使用的空分隔符实现了相同的功能,但您将遇到多字节UTF-8字符(即emojis)的问题。在字符计数和罗马化方面,我成功地将字符规范化为NFC格式。
<cfset myArray = "abcdef".split("")>
<cfdump var="#myArray#">
<cfset myString = "aäй漢か">
<cfset theChars = myString.toCharArray()>
<cfloop array="#theChars#" index="char">
<cfoutput>#char#</cfoutput>
</cfloop>