Jer*_*rry 5 string comparison performance tcl
我有一个字符串,我想检查它是否以某个字符开头(在这种情况下为#).我想知道最有效的方法!
我正在考虑的是if {[string compare -length 1 $string "#"]},因为它可能使用strcmp(),这可能是实现这一目标的最快方法之一.
我认为也可能是if {[string index $string 1] == "#"},因为它可能会*string =='#',这可能也会非常快.
你怎么看?
Don*_*ows 15
检查字符串是否以特定字符开头的最快方法是string match:
if {[string match "#*" $string]} { ... }
Run Code Online (Sandbox Code Playgroud)
进行匹配的代码看到在第一个字符之后有一个星形,然后是字符串的结尾,因此停止检查剩下的部分$string.它也不需要任何结果分配(除了布尔值之外,这是一种特殊情况,因为string match它也是字节码编译的).