从列表创建字符串

时间:2013-12-03 11:55:46

标签: tcl

我有一个如下字符串:

 (A-B,C&D-E,F,G&H-I,J,K);

在上面的字符串中我使用了带有“&”的split命令并获得以下要素:

 (A-B,C); (D-E,F,G) ;(H-I,J,K);

在上面的元素中,在第二个元素中添加了Z:

 (A-B,C); (D-E,F,G,Z); (H-I,J,K);

现在想要将z重建为原始字符串,例如:

 (A-B,C&D-E,F,G,Z&H-I,J,K);

请分享您的建议,谢谢。

2 个答案:

答案 0 :(得分:1)

set s "(A-B,C&D-E,F,G&H-I,J,K);"
set l [split $s "&"]
lset l 1 "[lindex $l 1],Z"
set new [join $l &]
puts $new
(A-B,C&D-E,F,G,Z&H-I,J,K);

答案 1 :(得分:0)

好吧,我们假设您在列表中有三个元素

puts $elements
{(A-B,C);} {(D-E,F,G,Z);} {(H-I,J,K);}

首先,让我们从每个元素

中删除();
set trimmed [list]

foreach e $elements {
    lappend trimmed [string trim $e "();"]
}

现在有一个新列表:

puts $trimmed
A-B,C D-E,F,G,Z H-I,J,K

最后,让我们join使用&字符列表,然后在结果字符串前添加(,在结尾添加);

set final ([join $trimmed &])\;
puts $final
(A-B,C&D-E,F,G,Z&H-I,J,K);

这应该是全部。