ColdFusion - 获取一个字符串并将其分解为各个变量

0 string variables coldfusion

我从另一个应用程序收到一个包含各种信息的字符串。这些项目始终处于相同的顺序,但可变信息的长度可以改变。每个项目由下划线分隔,并以字母和冒号为前缀。

例子:

答:12345678_B:5482945_C:20220911_D:20230402_E:3.94

理想情况下,我想将其分解,以便(在 Coldfusion 中)我最终可以得到一系列变量,我将它们设置为上面的 A、B、C、D 和 E 的值。

有谁知道有什么简单的方法可以做到这一点?

谢谢!

Ada*_*ron 6

我认为@Will 遗漏了您要求的一小部分,即

我最终可以得到一系列变量,我将它们设置为上面的 A、B、C、D 和 E 的值”

对我来说,这更多地展示了您想要实现的目标:

raw = "A:12345678_B:5482945_C:20220911_D:20230402_E:3.94"

asArray = raw.listToArray("_")
asStruct = asArray.reduce((struct, kvAsString) => {
    var key = kvAsString.listFirst(":")
    var value = kvAsString.listRest(":")
    struct[key] = value
    return struct
}, {})

writeDump(asStruct)
Run Code Online (Sandbox Code Playgroud)

(可运行@trycf.com:https://trycf.com/gist/e84aea475957e27b5dea2643e7c207ad/acf2021 ?theme=monokai )

显示代码结果的转储

虽然这不会创建“一系列变量”,但它确实将键与值分开,并且从那里您可以将其附加到您需要变量的任何范围(例如variables.append(asStruct):)


今后请:

  1. 向我们展示您已经尝试过的内容
  2. 给我们完整的预期结果,而不仅仅是描述它。

基本上:当你提出问题时总是包含代码。