Coldfusion:如何将字符串拆分为一组变量

Jac*_*sky 15 coldfusion cfml

我正在努力教自己ColdFusion.

我有一个以这种格式从数据库进来的字符串:

domain.com
<br/>
www.facebook.com/facebookpage
<br/>
http://instagram.com/instagrampage
Run Code Online (Sandbox Code Playgroud)

它全部来自#getRacer.txtDescription#.此文本的格式将始终相同.

我需要将它分成3个变量.我试过这个(源自adobe网站上的例子)

<h3>ListToArray Example</h3>
<cfset myList = ValueList(getRacer.txtDescription)>
<p>My list is a list with <cfoutput>#ListLen(myList)#</cfoutput> elements.
<cfset myArrayList = ListToArray(myList,'<br/>')>
<p>My array list is an array with 
<cfoutput>#ArrayLen(myArrayList)#</cfoutput> elements.
Run Code Online (Sandbox Code Playgroud)

我不知何故最终得到了数组中的11个项目.

谢谢

小智 26

这应该工作.

<cfset TestSTring = "domain.com<br/>www.facebook.com/facebookpage<br/>http://instagram.com/instagrampage">

<cfset a = TestString.Split("<br/>")>
Run Code Online (Sandbox Code Playgroud)

原因ListtoArray是显示11个项目是因为ColdFusion将分隔符字符串(<br/>)中的每个字符视为单独的分隔符

基于@Leigh的评论更新我的答案以确保人们应该学习Coldfusion API而不是摆弄Java函数,<cfset a = ListToArray(TestString, "<br/>", false, true)>这也是有效的.谢谢Leigh.

注:false末是针对includeEmptyFields标志和true是为multiCharacterDelimiter标志.查看文档.

  • 在这种情况下不需要java函数.CF9 +支持多字符分隔符:[`listToArray(...,multiCharacterDelimiter)`](http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f0f.html). (4认同)
  • 杰克 - 如果你刚刚学习CF,你可能想暂时跳过java的东西.首先关注学习核心功能.我通常建议人们在使用底层java函数之前仔细阅读API.[`split()`](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html)方法接受正则表达式(不仅仅是普通字符串),因此某些字符需要逃脱.此外,与大多数CF功能不同,它区分大小写.差异让一些人意识不到,然后他们对意外结果感到头疼. (3认同)
  • 我不知道我会告诉他完全跳过Java函数,尤其是String函数.Java String函数是使Java在CF中如此强大的一个重要部分.另外,它们通常比CF功能快得多.将一点Java融入混合将使CF学习起来更复杂一些,但我认为这将使他成为一个更全面的CF开发人员. (2认同)