Elixir实现提取字符串中每个单词第二个字母的函数
解决方案
你可以通过字符串分割、过滤、映射和拼接的组合来实现这个需求,以下是完整的Elixir函数实现:
defmodule StringUtils do def second_letters(input_str) do input_str |> String.split() |> Enum.filter(&String.length(&1) >= 2) |> Enum.map(&String.at(&1, 1)) |> Enum.join() end end
代码说明:
String.split():将输入字符串按空白字符分割成单词列表,示例输入会被拆分为["Hello", "World!", "This", "is", "a", "test."]Enum.filter(&String.length(&1) >= 2):过滤掉长度不足2的单词(比如示例中的"a"),避免尝试获取不存在的第二个字符Enum.map(&String.at(&1, 1)):对每个符合条件的单词,提取其第二个字符(Elixir字符串索引从0开始,所以索引1对应第二个字符)Enum.join():将提取到的字符列表拼接成最终的字符串
测试验证:
调用 StringUtils.second_letters("Hello World! This is a test.") 会返回 "eohse",和你给出的示例结果一致。
内容的提问来源于stack exchange,提问作者Kirishnamachari Srikanth
相关产品推荐
相关产品推荐

