Tôi có một chuỗi và tôi muốn kiểm tra xem nó có bắt đầu bằng một ký tự nhất định hay không (# trong trường hợp này). Tôi muốn biết cách hiệu quả nhất để làm điều này!Cách hiệu quả nhất để kiểm tra xem chuỗi có bắt đầu bằng một ký tự nhất định trong TCL hay không?
Những gì tôi đang nghĩ đến là if {[string compare -length 1 $string "#"]}
, bởi vì nó có thể sử dụng strcmp() mà có lẽ sẽ là một trong những cách nhanh nhất để đạt được điều này.
Điều tôi nghĩ cũng có thể là if {[string index $string 1] == "#"}
, vì nó có thể làm * string == '#', điều này có thể cũng sẽ rất nhanh.
Bạn nghĩ gì?
Trong khi 'chuỗi so sánh -length' kết thúc bằng cách sử dụng' strncmp() ', nó phải cẩn thận hơn bạn tưởng tượng vì Tcl sử dụng ký tự Unicode và không phải ASCII _and_ NUL là một ký tự hợp pháp trong Tcl chuỗi. –