string - 随机字母返回空白

标签 string enums elixir

我是 Elixir 新手,正在尝试从函数中获取随机字母。

我正在尝试定义一个返回 a 和 z 之间的随机字母的函数。

由于某种原因,有时会返回空白字符。 为什么?

defp random_letter do
  "abcdefghijklmnopqrstuvwxyz"
  |> String.split("")
  |> Enum.random
end

def process do
  Enum.each(1..12, fn(number) ->
    IO.puts random_letter
  end)
end

输出:

g
m
s
v
r
o
m

x
e
j
w

最佳答案

String.split("abcdefghijklmnopqrstuvwxyz", "")

返回

["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", ""]

查看列表中的最后一个元素,您就会得到答案:)

为了避免这种情况,您可以使用 trim 选项,如下所示:

String.split("abcdefghijklmnopqrstuvwxyz", "", trim: true)

关于string - 随机字母返回空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567393/

相关文章:

dart - 如何将Enum包含在Dart类中?

java - hibernate 将 Set<Enum> 存储到数据库中

c# - 使用值从 C# 中的枚举中获取正确的名称

linux - 我无法在我的 ubuntu 18.10 cosmic 系统上安装 erlang/Elixir

polymorphism - 如何在 Elixir 中实现函数/进程多态性

c# - 如何在 C# 中返回空值而不是空值

c++ - 如何从字符串中提取特定元素?

带有语言环境的 Javascript string.prototype.contains()

string - Bash 脚本 : find and replace uppercase character on a string

elixir - 如何获取客户端的IP地址?