请假设#headerNames#
的值为Apple Orange Pear
。
如何将其视为列表?
我试过了:
<cfset headerList = "">
<cfset headerList = ListAppend(headerList,"#headerNames#",",")>
但这不起作用。那么如何将#headerNames#
的值存储为列表?
PS:我之所以要求假设#headerNames#
是因为这些值来自于读取excel文件,因此,这个问题有很多不相关的代码。但如果需要,请告诉我,我将编辑/更新问题。
答案 0 :(得分:2)
您可以使用ColdFusion ListChangeDelims()
函数将space
分隔列表转换为逗号分隔列表,然后将列表附加到所需列表。喜欢这个
<cfscript>
headerNames = "Apple Orange Pear";
headerList = ListChangeDelims(headerNames,",", " ");
writeoutput(headerList);
</cfscript>
我能想到的另一个解决方案是使用ColdFusion ReReplace()
函数将空格分隔列表中的所有空格替换为comma (,)
。喜欢这个
<cfscript>
headerNames = "Apple Orange Pear";
headerList = ReReplace(headerNames," ", ",", "all");
writeoutput(headerList);
</cfscript>
要阅读有关这些功能的更多信息,请访问文档中的以下链接: ListChangeDelims()和ReReplace()。
答案 1 :(得分:2)
您实际上不必更改任何内容以将其视为列表。 ColdFusion将space
识别为有效分隔符:
<cfset headerNames = "Apple Orange Pear">
<cfoutput>
<cfloop list="#headerNames#" delimiters=" " index="i">
#i#<br />
</cfloop>
</cfoutput>
<!--- output:
Apple
Orange
Pear
--->
答案 2 :(得分:0)
ColdFusion中的列表只是字符串,因此不需要转换或转换,任何字符串都可以作为列表处理。您的headerNames字段已经是一个列表。
ColdFusion中的所有列表函数都有一个可选的分隔符字段 即:
<cfset headerNamesLen = listlen(headerNames, " ")> <!--- 3 --->
<cfset headerNames = listAppend(headerNames, "kiwi", " ")> <!--- Apple Orange Pear kiwi --->
<cfset orangeIndex = listfind(headerNames, "Orange", " ")> <!--- 2 --->
如果您需要返回一个列表,该列表将被其他期望默认逗号分隔列表的函数使用,请使用
<cfset headerList = ListChangeDelims(headerNames, ","," ")>
由于您是从excel文件加载 - 如果您还需要处理空白条目 - 它看起来像这样
<cfset headerNamesLen = listlen(headerNames, " ", true)> <!--- 3 --->
<cfset headerNames = listAppend(headerNames, "kiwi", " ")> <!--- Apple Orange Pear kiwi --->
<cfset orangeIndex = listfind(headerNames, "Orange", " ", true)> <!--- 2 --->
使用第二个可选字段 includeEmptyValues