erlang - 如何将一个字符串分成子串?

标签 erlang

我想根据给定的数字将一个字符串分成子字符串,例如:

divide("string",1) = ["s","t","r","i","n","g"].

我已经试过了,但是没有成功。

lists:split(1,"string") = {"s", "tring"}

有什么想法吗?

最佳答案

我会计算一次长度(因为这是一个缓慢的操作),然后递归地使用 lists:split/2 直到剩下的列表小于 N:

divide(List, N) ->
  divide(List, N, length(List)).

divide(List, N, Length) when Length > N ->
  {A, B} = lists:split(N, List),
  [A | divide(B, N, Length - N)];
divide(List, _, _) ->
  [List].
1> c(a).
{ok,a}
2> a:divide("string", 1).
["s","t","r","i","n","g"]
3> a:divide("string", 2).
["st","ri","ng"]
4> a:divide("string", 3).
["str","ing"]
5> a:divide("string", 4).
["stri","ng"]
6> a:divide("string", 5).
["strin","g"]
7> a:divide("string", 6).
["string"]
8> a:divide("string", 7).
["string"]

关于erlang - 如何将一个字符串分成子串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250350/

相关文章:

erlang - 你在 Erlang 上使用 Nitrogen 是什么体验?

sockets - 关闭 TCP 套接字的二郎

ssl - CouchDB SSL 握手错误

erlang - Erlang 中的 << 和 >> 符号

debugging - 能够从进程 ID 识别进程身份的最佳 erlang 方法是什么?

erlang - 合并 Mnesia 记录

python - Erlang 和 Python 之间的 RSA 加密

erlang - 使用 NIF 编译项目,未找到 rebar : cl. exe

mysql - erlang mysql 结果到 xml

javascript - JavaScript中有多人棋盘游戏的框架吗?