String 计算字符串中子字符串出现次数的最短方法是什么?(长生不老药)

String 计算字符串中子字符串出现次数的最短方法是什么?(长生不老药),string,elixir,String,Elixir,现在我一直在使用Regex.scan方法: 在Ruby中,我们可以使用.scan方法:Hello world.count o=>2 使用Elixir计算字符串中的子字符串是否有较短的方法?不需要华丽的正则表达式,我只需要计算一个字符串中有多少子字符串。不是更短,而是另一种选择: "Hello world" |> String.graphemes |> Enum.count(& &1 == "o") 感谢@mudasobwa的惯用方式。不是更短,而是另一种选择: "H

现在我一直在使用Regex.scan方法:

在Ruby中,我们可以使用.scan方法:Hello world.count o=>2


使用Elixir计算字符串中的子字符串是否有较短的方法?不需要华丽的正则表达式,我只需要计算一个字符串中有多少子字符串。

不是更短,而是另一种选择:

"Hello world" |> String.graphemes |> Enum.count(& &1 == "o")

感谢@mudasobwa的惯用方式。

不是更短,而是另一种选择:

"Hello world" |> String.graphemes |> Enum.count(& &1 == "o")

感谢@mudasobwa的惯用方法。

另一个解决方案是将字符串按给定的子字符串拆分,然后返回列表长度减1

len = "foo bar foobar" |> String.split("foo") |> length()
total = len - 1

另一种解决方案是将字符串按给定的子字符串拆分,然后返回列表长度减1

len = "foo bar foobar" |> String.split("foo") |> length()
total = len - 1

ruby中的Stringcount仅适用于单个字符。您在Elixir中的示例计算子字符串的数量,在ruby中,您将为此执行Stringscan。请澄清你的问题。我会小心不要把短线和最佳线划等号。我可能看错了你的问题,但似乎你认为对于superior.Stringcount的某些定义来说,更短的实现会自动优于它。ruby中的Stringcount只适用于单个字符。您在Elixir中的示例计算子字符串的数量,在ruby中,您将为此执行Stringscan。请澄清你的问题。我会小心不要把短线和最佳线划等号。我可能看错了你的问题,但似乎你认为对于superior的某些定义,更短的实现会自动优于。在习惯用法的Elixir中,这将是Hello world |>String.graphemes |>Enum.count&&1==o:在习惯用法的Elixir中,这将是Hello world |>String.graphemes |>Enum.count&&1==o: