在tcl中连接两个字符串
Concatenating two strings in tcl
我需要在 tcl 中连接两个字符串,然后 trim 连接后的字符串(如果有任何不需要的字符,如 '_'
)。字符串存储在 tcl 变量中,我面临的问题是我需要连接这两个字符串,如 "$str1_$str2"
。基本上用 '_'
连接两个字符串。我找到了如下方法。
set str1 "mystring1"; #string 1
set str2 "mystring2"; #string 2. This string could be Empty String as well.
set outString [append outString "_" $str2];
set outString [string trimright '_'];
这给我 outString 的值如下:
puts $outString;
mystring1_mystring2 #if $str2 is not empty
mystring1 #if $str2 is empty.
我正在寻找一种更优化的方法来完成我的任务。我试图简单地连接两个字符串,如
set outString "$str1_$str2"
但是我得到的错误是 "No such variable as $str1_" 因为 '_' 下划线可以是变量名的一部分。
如有任何建议,我们将不胜感激。
将变量插入字符串时,可以使用花括号保护变量名。
set str1 "mystring1";
set str2 "mystring2";
set outString "${str1}_${str2}"
(相同的语法适用于 shell 脚本、Perl 以及其他脚本语言。)
但我不会指望这是 "more optimized" 调用 append
。它更容易阅读,恕我直言,这是一个足够好的理由来这样做,但在你测量它之前不要假设它更快。
我需要在 tcl 中连接两个字符串,然后 trim 连接后的字符串(如果有任何不需要的字符,如 '_'
)。字符串存储在 tcl 变量中,我面临的问题是我需要连接这两个字符串,如 "$str1_$str2"
。基本上用 '_'
连接两个字符串。我找到了如下方法。
set str1 "mystring1"; #string 1
set str2 "mystring2"; #string 2. This string could be Empty String as well.
set outString [append outString "_" $str2];
set outString [string trimright '_'];
这给我 outString 的值如下:
puts $outString;
mystring1_mystring2 #if $str2 is not empty
mystring1 #if $str2 is empty.
我正在寻找一种更优化的方法来完成我的任务。我试图简单地连接两个字符串,如
set outString "$str1_$str2"
但是我得到的错误是 "No such variable as $str1_" 因为 '_' 下划线可以是变量名的一部分。
如有任何建议,我们将不胜感激。
将变量插入字符串时,可以使用花括号保护变量名。
set str1 "mystring1";
set str2 "mystring2";
set outString "${str1}_${str2}"
(相同的语法适用于 shell 脚本、Perl 以及其他脚本语言。)
但我不会指望这是 "more optimized" 调用 append
。它更容易阅读,恕我直言,这是一个足够好的理由来这样做,但在你测量它之前不要假设它更快。