有没有更好的方法来获取前n个字节,以及字符串的其余部分?当前正在使用binary_part和String.trim_leading

时间:2018-11-04 00:25:44

标签: elixir

给出一个字符串str = "üabc123"size = 5。我想获得前5个字节("üabc"),其余的字符串("123")。

目前我正在做

str = "üabc123"
size = 5
a = binary_part(str, 0, size)      # "üabc"
b = String.trim_leading(str, a)    # "123"

似乎会有更清洁的方法来执行此操作。还有另一种方法吗?

2 个答案:

答案 0 :(得分:6)

您可以使用二进制模式匹配

$

答案 1 :(得分:0)

出于好奇,这里是一个单行拆分:

# make sure u-umlaut is combined diacritical
[lead, trail] =
  str
  |> to_charlist() 
  |> Enum.split(size)
  |> Tuple.to_list()
  |> Enum.map(&to_string/1)
#⇒ ["üabc", "123"]