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

发布于 2024-09-12 01:23:50 字数 144 浏览 4 评论 0原文

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

在Tcl中这些是等价的吗?即尾随空白将作为选项提供还是被解析掉?我应该“字符串修剪”该值还是没有必要?

**

I am using the switch statement to match some options which may or may not have VALUES associated with them, then extracting the values (which I imagine could be nothing or just a bunch of empty strings).

In Tcl are these equivalent? I.e. will trailing white space be fed as an option or parsed out? Should I "string trim" the value or is this unnecessary?

**

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晨曦慕雪 2024-09-19 01:23:50

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

set str [string trim $str]

您可以分别使用 stringrimleftstringtrimright 删除前导空格或尾随空格。

By default, whitespace is not trimmed from the start or end of any strings. After all, it can sometimes be significant. If you do want to strip the leading and trailing whitespace, use:

set str [string trim $str]

You can just strip the leading space or trailing space by using string trimleft and string trimright respectively.

终止放荡 2024-09-19 01:23:50

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

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

尾随空白将作为
选项或解析出来?

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

我应该“字符串修剪”该值还是
这没有必要吗?

这个问题的答案取决于您的应用程序。如果空白不重要,请使用 strimrim 命令将其修剪掉(正如Donal Fellows提到的)。这样做可能会简化您的逻辑。您还可以使用 regsub -all {\s+} $input_string { } 折叠字符串内所有重复的空白字符。

In Tcl is whitespace equal to Empty
string?

Whitespace is not equal to an empty string. Using TCL 8.5.2, the expression expr {"" eq " "} evaluates to 0.

will trailing white space be fed as an
option or parsed out?

If you are accepting the strings as-is and performing no processing on them, then you will get any whitespace that is present.

Should I "string trim" the value or is
this unnecessary?

The answer to this depends on your application. If the whitespace is not significant, trim it away using the strim trim command (as Donal Fellows mentioned). Doing so will likely simplify your logic. You can also use regsub -all {\s+} $input_string { } to collapse all repeated whitespace characters inside of a string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文