由于我现在在长生不老药中得到它的方式,我如何才能得到低于字符串的结果。
['x1', 'x2']
我试过enum.join
但没有得到想要的数据
至
'x1,x2'
如果我理解正确,您应该使用Enum.join/2
第二个参数来定义“joiner”。这应该工作:
arr = ['x1', 'x2']
Enum.join(arr, ",")
# => "x1,x2"
如果您希望结果为 char 列表,可以使用以下命令将其变为 1 String.to_char_list/1
:
String.to_char_list(Enum.join(arr, ","))
# => 'x1,x2'
Enum.reduce/2
另一种选择是显式使用和添加连接器:
Enum.reduce(arr, &(&2 ++ ',' ++ &1))
# => 'x1,x2'
join
这是单引号字符串的经典递归实现:
defmodule MyString do
def join(list, joiner \\ ''), do: do_join(list, joiner)
defp do_join([], joiner), do: ''
defp do_join([hd], joiner), do: hd
defp do_join([hd | tl], joiner), do: hd ++ joiner ++ join(tl, joiner)
end
iex> MyString.join([], ',')
[]
iex> MyString.join(['x1'], ',')
'x1'
iex> MyString.join(['x1', 'x2'], ',')
'x1,x2'
iex> MyString.join(['x1', 'x2'])
'x1x2'