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 String.split_at用法及代码示例
- Elixir String.splitter用法及代码示例
- Elixir String.split用法及代码示例
- Elixir String.starts_with?用法及代码示例
- Elixir String.contains?用法及代码示例
- Elixir String.reverse用法及代码示例
- Elixir String.to_integer用法及代码示例
- Elixir String.pad_trailing用法及代码示例
- Elixir String.valid?用法及代码示例
- Elixir String.replace_prefix用法及代码示例
- Elixir String.printable?用法及代码示例
- Elixir String.replace_trailing用法及代码示例
- Elixir String.trim_leading用法及代码示例
- Elixir String.length用法及代码示例
- Elixir String.replace_suffix用法及代码示例
- Elixir String.first用法及代码示例
- Elixir String.upcase用法及代码示例
- Elixir String.graphemes用法及代码示例
- Elixir String.at用法及代码示例
- Elixir String.replace用法及代码示例
- Elixir String.next_grapheme用法及代码示例
- Elixir String.next_codepoint用法及代码示例
- Elixir String.myers_difference用法及代码示例
- Elixir String.trim_trailing用法及代码示例
- Elixir String.normalize用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 String.slice(string, range)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。