當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。