有没有更优雅的方法将字符串转换为数组?

Moh*_*mad 4 arrays coldfusion coldfusion-9

我想将一个11位数的字符串转换为数组.在ColdFusion 9中有更优雅的方法吗?

local.string = [];

for (local.i = 1; local.i <= len(arguments.string); local.i++)
{
    local.string[ local.i ] = mid(arguments.string, local.i, 1);
}
Run Code Online (Sandbox Code Playgroud)

如果我的字符串是12345,那么数组看起来像string[1] = 1; string[2] = 2等等......

seb*_*gan 7

有一种优雅的方式,我认为可以在任何版本的ColdFusion中使用.

诀窍是使用CF的列表操作函数 - 如果指定""的分隔符(即什么都没有),它将把字符串的每个字符看作列表项.

所以你想要的是:

local.string = listToArray(arguments.string, "");
Run Code Online (Sandbox Code Playgroud)

这会给你你的角色数组......


CfS*_*ity 6

这适用于CF8,不依赖于CF9中的"bug":

stringAsList = REReplace( string,"(.)","\1,","ALL" );
array = ListToArray( stringAsList );
Run Code Online (Sandbox Code Playgroud)

  • 好一个.我认为它甚至可以是一个带有reMatch的单行:`result = Rematch("(.)",string);` (2认同)