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

如何在Elixir中便捷获取字符串的第n个字符?

更简便的Elixir字符串单个字符获取方式

好问题!确实Ruby里通过"Hello"[0]取单个字符的写法非常直观,在Elixir里其实有专门的函数可以实现同样简洁的效果,不用每次写String.slice("Hello", 0..0)这种稍显繁琐的范围语法。

最直接的方案是使用**String.at/2**函数,它就是专门用来获取字符串指定索引位置的单个字符的,用法和你习惯的Ruby写法几乎一样简洁:

String.at("Hello", 0) #=> "H"
String.at("Hello", 2) #=> "l"

顺便提个小细节:Elixir的字符串是原生UTF-8编码的,所以String.at/2能正确处理多字节的Unicode字符,比如中文、emoji这类,不会出现乱码问题:

String.at("Elixir 真棒", 7) #=> "棒"
String.at("😀😃😄", 1) #=> "😃"

如果你的需求是获取对应位置字符的Unicode码点(整数形式),还可以用String.codepoint_at/2:

String.codepoint_at("Hello", 0) #=> 72

内容的提问来源于stack exchange,提问作者Iggy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:33:30