在 CMAKE 中,要将字符串拆分成列表通常有两种方法:使用 string
函数或使用 foreach
循环。下面分别介绍这两种方法。
使用 string 函数
在 CMAKE 中,可以使用 string
函数将一个字符串拆分成多个子串。具体来说,可以使用 string(SPLIT <string> <separator> <output>)
函数将 <string>
按照 <separator>
分隔符拆分成多个子串,并将结果存储在 <output>
列表变量中。例如:
set(str "foo:bar:baz") string(SPLIT str ":" list) message("${list}") # 输出 "foo" "bar" "baz"
上述代码将字符串 "foo:bar:baz"
按照 :
分隔符拆分成了列表变量 list
,其中包含三个元素 "foo"
、"bar"
和 "baz"
。
使用 foreach 循环
除了使用 string
函数外,还可以使用 foreach
循环将一个字符串拆分成多个子串。具体来说,可以先使用 string
函数将字符串拆分成单个元素的列表,然后再使用 foreach
循环遍历该列表。例如:
set(str "foo:bar:baz") string(REPLACE ":" ";" list "${str}") foreach(item ${list}) message("${item}") # 依次输出 "foo"、"bar" 和 "baz" endforeach()
上述代码使用 string(REPLACE ":" ";" list "${str}")
函数将字符串 "foo:bar:baz"
中的 :
替换成 ;
,得到了一个包含三个元素的列表变量 list
。然后使用 foreach
循环遍历该列表,并输出每个元素。
比较两种方法
这两种方法各有优缺点。使用 string
函数更加简单易懂,适用于简单的字符串拆分操作;而使用 foreach
循环则更加灵活,可以进行复杂的字符串处理操作。因此,在具体应用中需要根据实际情况选择合适的方法。
示例代码
下面是一个示例代码,演示如何使用 string
函数和 foreach
循环将一个字符串拆分成多个子串:
-- -------------------- ---- ------- ------- -------------- - -- ------ -- ------------ --- --- ----- ----------- ------ ------------ - -- ------- -- -------------- --- --- ---- --------- ------------ -------- ----------- ------- ------------ ------------
输出结果如下:
使用 string 函数:foo;bar;baz 使用 foreach 循环:foo 使用 foreach 循环:bar 使用 foreach 循环:baz
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/605429998d846479e750aab3