我正在使用switch语句来匹配某些选项,这些选项可能有或没有与它们关联的VALUES,然后提取值(我想象的可能是什么或只是一堆空字符串)。
在Tcl中这些是等价的吗?即将尾随空格作为选项提供或解析出来?我应该“修剪”这个值还是不必要的?
**
答案 0 :(得分:3)
默认情况下,不会从任何字符串的开头或结尾剪裁空格。毕竟,它有时可能很重要。如果您确实要删除前导和尾随空格,请使用:
set str [string trim $str]
您可以分别使用string trimleft
和string trimright
去除前导空格或尾随空格。
答案 1 :(得分:2)
在Tcl中,空格等于Empty 字符串?
空格不等于空字符串。使用TCL 8.5.2,表达式expr {"" eq " "}
的计算结果为0
。
将尾随白色空间作为一个 选项还是已解析?
如果您按原样接受字符串并且不对它们执行任何处理,那么您将获得任何存在的空格。
我应该“修剪”值或者是 这不必要吗?
答案取决于您的申请。如果空白不重要,请使用strim trim
命令将其修剪掉(如Donal Fellows所述)。这样做可能会简化您的逻辑。您还可以使用regsub -all {\s+} $input_string { }
折叠字符串中所有重复的空白字符。