从以空格为分隔符的整数字符串中分离出所有整数的Erlang程序
2010-04-06 16:45
295 查看
目的如题. 主函数是split_integer/1, 这里用到了Erlang提供的尾递归功能. 存储到文件me.erl中
-module(me).
-compile(export_all).
split_integer(L) ->
L1=lists:reverse(L),
split_integer_a([],L1,[]).
split_integer_a([],[],Result) -> Result;
split_integer_a(R1,[],Result) -> [list_to_integer(R1)|Result];
split_integer_a(R1,[H|T],Result) ->
if
H==32 ->
if
R1==[] -> split_integer_a([],T,Result);
true -> split_integer_a([],T,[list_to_integer(R1)|Result])
end;
true -> split_integer_a([H|R1],T, Result)
end.
进入erlang shell:
1> c(me).
{ok,me}
2> me:split_integer("1 2 3 4 5 6789").
[1,2,3,4,5,6789]
练习题: 如果问题改为用空格分开的是小数和整数的混合字符串又该如何? 或者分隔符是别的呢? 动动脑筋哟 (:
利用Erlang标准库中string模块的tokens/2函数, 可以使得上面的任务变得非常简单.
split_integer(String,SeparatorList) ->
lists:map(fun(SubString)->list_to_integer(SubString) end, string:tokens(String,SeparatorList)).
-module(me).
-compile(export_all).
split_integer(L) ->
L1=lists:reverse(L),
split_integer_a([],L1,[]).
split_integer_a([],[],Result) -> Result;
split_integer_a(R1,[],Result) -> [list_to_integer(R1)|Result];
split_integer_a(R1,[H|T],Result) ->
if
H==32 ->
if
R1==[] -> split_integer_a([],T,Result);
true -> split_integer_a([],T,[list_to_integer(R1)|Result])
end;
true -> split_integer_a([H|R1],T, Result)
end.
进入erlang shell:
1> c(me).
{ok,me}
2> me:split_integer("1 2 3 4 5 6789").
[1,2,3,4,5,6789]
练习题: 如果问题改为用空格分开的是小数和整数的混合字符串又该如何? 或者分隔符是别的呢? 动动脑筋哟 (:
利用Erlang标准库中string模块的tokens/2函数, 可以使得上面的任务变得非常简单.
split_integer(String,SeparatorList) ->
lists:map(fun(SubString)->list_to_integer(SubString) end, string:tokens(String,SeparatorList)).
相关文章推荐
- 是否以某字符串结尾 是否以某字符串开始 是否是整数 裁减字符串空格 是否是浮点数 是否所有字符为数字类型 是否为空 是否是EMAIL 是否是电话号码 身份证号码验证-支持新的带x身份证 日期验证
- 用户输入一串整数和任意数目的空格,程序自动对所有的整数进行求和
- 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。 输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。 补充说明: 1、操作数为
- 去掉字符串前后所有空格的正则表达式
- python 正则字符串替换 re.sub 替换输入参数字符串inStrings 所有的一个或多个空格替换为newstring
- 编写程序数一下 1到 100 的所有整数中出现多少次数字 9
- 自己编写的去掉字符串中的所有空格函数trim_all
- C实例----删除键盘输入字符串的所有空格
- 编写程序数一下1到100的所有整数中出现了多少次数字9
- 写一个程序,输入一个长整型数,输入一任意一个长整数,请用函数一求出长整数所有之和,用函数二求出长整型数的逆序数。
- 如何用javascript去掉字符串里的所有空格
- 得到网卡MAC地址 去除字符串前后所有空格
- 替换字符串中所有的空格
- 有一个二叉树, 节点全部为整数,如何找到一个子树,它所有节点的和最大?要求编程序实现。
- 要求编写程序,读入5个字符串,按由小到大的顺序输出。 (2)功能要求 ①输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
- 387974 访问 185 采纳 从SQL Server中的字符串中删除所有空格
- 去掉字符串左边的所有空格
- 转: 编写程序,分离出一个实数的整数部分与小数部分,要求用函数完成
- 用c语言实现 编写程序数一下1到100的所有整数中出现多少次数字9
- 【c语言】编写程序数一下1到100的所有整数中出现多少次数字9