Elixir-如何将字符串每3个字符拆分为一个列表

约瑟夫·安

如果我有字符串,"UGGUGUUAUUAAUGGUUU"该如何将其变成一个列表,该列表每3个字符分成一个["UGG", "UGU", "UAU", "UAA", "UGG", "UUU"]

多伯特

如果您的字符串仅包含ASCII字符,并且字符串byte_size是3的倍数,那么使用鲜为人知的Elixir功能有一个非常优雅的解决方案:二进制理解:

iex(1)> string = "UGGUGUUAUUAAUGGUUU"
"UGGUGUUAUUAAUGGUUU"
iex(2)> for <<x::binary-3 <- string>>, do: x
["UGG", "UGU", "UAU", "UAA", "UGG", "UUU"]

这会将字符串分成3个字节的块。这将比在代码点或字素上分割要快得多,但是如果您的字符串包含非ASCII字符,则将无法正常工作。(在那种情况下,我会接受@michalmuskala的回答。)

编辑:Patrick Oscity的答案提醒我这也可以用于代码点:

iex(1)> string = "αβγδεζηθικλμνξοπρςστυφχψ"
"αβγδεζηθικλμνξοπρςστυφχψ"
iex(2)> for <<a::utf8, b::utf8, c::utf8 <- string>>, do: <<a::utf8, b::utf8, c::utf8>>
["αβγ", "δεζ", "ηθι", "κλμ", "νξο", "πρς", "στυ", "φχψ"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何用另一个[ELIXIR / ERLANG]替换字符串中的第n个字符

如何将一个字符串拆分为一个长度为3的字符串列表?

每n个字符将字符串拆分为一个新列

elixir 中字符串的第一个和最后一个字符之间的删失字符

如何将字符串拆分为第一个字符和其余字符?

每n个单词将一个字符串拆分为较小的字符串

如何将一个字符串拆分为几个可能的字符?

将字符串每2个字符拆分为一个数组

将一个字符串拆分为多个列表

Swift:如何将一个字符串数组拆分为多个匹配值数组?

如何将包含多个js语句的字符串拆分为字符串数组,每个字符串包含一个语句?

如何将一个字符串的项目拆分为两个,其中一个包含以'-D'开头的项目?

如何将Javascript字符串拆分为少于140个字符的句子?

将一个字符串拆分为两个字符串

如何将字符串拆分为3个字符串并在同一位置替换

如何将QString拆分为单个字符并创建一个新字符?

如何将一个字符串拆分为4个字符的子字符串,然后用连字符连接它们?

将一个字符串拆分为多行 (SAS)

如果字符串被特定字符包围,如何将其拆分为另一个字符串

给定一个字符串s,将字符串拆分为令牌

如何从Elixir中的字符串中删除开头的n个字符?

如何将列表的子字符串转换为一个字符串

如何将一个字符串分成2个字符串

将一个数字拆分为一个字符串数组

c ++如何基于最后一个“。”将字符串拆分为两个字符串

如何将一个字符串与其他3个字符串进行比较?

如何确定Elixir中整个字符串是否为大写?

如何将一个字符数组(字符串)传递到链接列表(队列)

Python 3 - 如何在保持十进制数不变的情况下将字符串中的每个字符拆分成一个列表?