string - 在 TCL 中检查字符串是否以某个字符开头的最有效方法是什么?

标签 string performance comparison tcl

我有一个字符串,我想检查它是否以某个字符开头(在这种情况下为 #)。我想知道这样做的最有效方法!

我在想的是 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/

相关文章:

c - 如何通过给出行的坐标将行的内容复制到字符串中

c# - 检查斜杠的字符串

c# - 跨多个数据中心在地理上扩展 Azure 云服务

python - 数据分析问题的最佳解决方案

c# - 比较两位小数

Java 哈希值 : how to make them efficiently comparable?

javascript - 如何计算特定字符在字符串中出现的次数

java - 通过 JButton 从 JTextField 获取字符串

c# - 使用 LINQ to Objects 语句的 "a lot"是否有一些缺点?

将结构体与指针成员进行比较