在Tcl中,空格是否等于空字符串?

时间:2010-07-26 21:36:00

标签: switch-statement tcl

我正在使用switch语句来匹配某些选项,这些选项可能有或没有与它们关联的VALUES,然后提取值(我想象的可能是什么或只是一堆空字符串)。

在Tcl中这些是等价的吗?即将尾随空格作为选项提供或解析出来?我应该“修剪”这个值还是不必要的?

**

2 个答案:

答案 0 :(得分:3)

默认情况下,不会从任何字符串的开头或结尾剪裁空格。毕竟,它有时可能很重要。如果您确实要删除前导和尾随空格,请使用:

set str [string trim $str]

您可以分别使用string trimleftstring trimright去除前导空格或尾随空格。

答案 1 :(得分:2)

  

在Tcl中,空格等于Empty   字符串?

空格不等于空字符串。使用TCL 8.5.2,表达式expr {"" eq " "}的计算结果为0

  

将尾随白色空间作为一个   选项还是已解析?

如果您按原样接受字符串并且不对它们执行任何处理,那么您将获得任何存在的空格。

  

我应该“修剪”值或者是   这不必要吗?

答案取决于您的申请。如果空白不重要,请使用strim trim命令将其修剪掉(如Donal Fellows所述)。这样做可能会简化您的逻辑。您还可以使用regsub -all {\s+} $input_string { }折叠字符串中所有重复的空白字符。