我有一个字符串,我想检查它是否以某个字符开头(在这种情况下为 #)。我想知道这样做的最有效方法!
我在想的是 if {[string compare -length 1 $string "#"]}
,因为它可能会使用 strcmp() 这可能是实现这一目标的最快方法之一。
我认为也可能是if {[string index $string 1] == "#"}
,因为它可能会做 *string == '#' 这也可能会非常快。
你怎么认为?
最佳答案
检查字符串是否以特定字符开头的最快方法是 string match
:
if {[string match "#*" $string]} { ... }
进行匹配的代码看到第一个字符后面有一个星号,然后是字符串的结尾,因此停止检查
$string
的其余部分。 .它也不需要任何结果分配(除了 bool 值,这是一种特殊情况,因为 string match
也是字节码编译的)。
关于string - 在 TCL 中检查字符串是否以某个字符开头的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705802/