如何在 Julia 的字符串数组中查找子字符串或字符

Lui*_*rto 6 string performance julia

执行下一行代码正在执行的相同操作的更有效方法是什么:

X = ["Please", "Thx", "Hello", "World"]
findfirst(k->occursin('H',k)==true,X)
Run Code Online (Sandbox Code Playgroud)

所以基本上我试图找到具有大写字母 H 的数组 X 的第一个元素,所以在这个例子中输出是 3,但是有没有更有效的方法来做到这一点?

log*_*ick 2

除非我在这里遗漏了一些基本的东西,否则请查看以下时间安排:


julia> @time findfirst(k->occursin('H',k),X)
  0.015461 seconds (11.20 k allocations: 689.455 KiB, 99.63% compilation time)
3

julia> @time findfirst(contains('H'),X)
  0.000008 seconds
3
Run Code Online (Sandbox Code Playgroud)

看起来该contains路线的性能明显优于occursin.