gpt4 book ai didi

split - Elixir中的String.split()在输出中的子字符串列表的末尾放置一个空字符串

转载 作者:行者123 更新时间:2023-12-04 11:19:23 27 4
gpt4 key购买 nike

我是Elixir的新手。我正在尝试对字符串split的基本操作,如下所示

String.split("Awesome","");

根据 elixir document,它应该根据提供的模式 split字符串。我得到的 output如下
["A", "w", "e", "s", "o", "m", "e", ""]

我期待如下的 output
["A", "w", "e", "s", "o", "m", "e"]

我的 ElixirElang版本如下
Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Elixir 1.5.1

我无法理解为什么在输出中的 empty stringend处添加了 list of substrings。有人可以让我知道为什么我得到上述输出并为预期的输出提供帮助吗?

最佳答案

我想这是预期的行为。 link you provided还说以下内容:

Empty strings are only removed from the result if the :trim option is set to true.



在解决方案的示例之一中:

Splitting on empty patterns returns graphemes:


iex> String.split("abc", "")
["a", "b", "c", ""]

iex> String.split("abc", "", trim: true)
["a", "b", "c"]

如果您想知道什么是“字素”,那么Elixir文档在 String documentation的开头也对此进行了解释。

最后,如果要深入研究字素,还有另外两个有用的功能: String.codepoints/1String.graphemes/1。例如:
iex> noel = "noe\u0308l"
"noël"
iex> String.codepoints(noel)
["n", "o", "e", "̈", "l"]
iex> String.graphemes(noel)
["n", "o", "ë", "l"]

# Let's try with your example
iex> String.codepoints("Awesome")
["A", "w", "e", "s", "o", "m", "e"]
iex> String.graphemes("Awesome")
["A", "w", "e", "s", "o", "m", "e"]

关于split - Elixir中的String.split()在输出中的子字符串列表的末尾放置一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45850016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com