当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir String.slice用法及代码示例


Elixir语言中 String.slice 相关用法介绍如下。

用法一

slice(string, range)
@spec slice(t(), Range.t()) :: t()

返回从范围开始给定的偏移量到范围结束给定的偏移量的子字符串。

如果范围的开始不是给定字符串的有效偏移量,或者范围的顺序相反,则返回 ""

如果范围的开始或结束为负,则首先遍历整个字符串,以便将负索引转换为正索引。

请记住,此函数适用于 Unicode 字形,并考虑切片来表示字形偏移。如果要拆分原始字节,请改为检查 Kernel.binary_part/3

例子

iex> String.slice("elixir", 1..3)
"lix"

iex> String.slice("elixir", 1..10)
"lixir"

iex> String.slice("elixir", -4..-1)
"ixir"

iex> String.slice("elixir", -4..6)
"ixir"

对于 start > stop 的范围,您需要将它们显式标记为增加:

iex> String.slice("elixir", 2..-1//1)
"ixir"

iex> String.slice("elixir", 1..-2//1)
"lixi"

如果值超出范围,则返回一个空字符串:

iex> String.slice("elixir", 10..3)
""

iex> String.slice("elixir", -10..-7)
""

iex> String.slice("a", 0..1500)
"a"

iex> String.slice("a", 1..1500)
""

用法二

slice(string, start, length)
@spec slice(t(), integer(), non_neg_integer()) :: grapheme()

返回从偏移量 start 和给定 length 开始的子字符串。

如果偏移量大于字符串长度,则返回 ""

请记住,此函数适用于 Unicode 字形,并考虑切片来表示字形偏移。如果要拆分原始字节,请改为检查 Kernel.binary_part/3

例子

iex> String.slice("elixir", 1, 3)
"lix"

iex> String.slice("elixir", 1, 10)
"lixir"

iex> String.slice("elixir", 10, 3)
""

iex> String.slice("elixir", -4, 4)
"ixir"

iex> String.slice("elixir", -10, 3)
""

iex> String.slice("a", 0, 1500)
"a"

iex> String.slice("a", 1, 1500)
""

iex> String.slice("a", 2, 1500)
""

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 String.slice(string, range)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。