You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:40:36