erlang list和string自带方法应用

一 、 erlang -lists

lists:append([[1,2,3],[1,b],[3,4,5]]). 结果为 [1,2,3,a,b,3,4,5] 把多个列表合并成一个列表
lists:append("abc","sad"). 结果为 "abcsad" 合并
lists:concat([doc,'/',file,'.',3]). 结果为 "doc/file.3"
lists:delete(a,[s,a,f,a,d]). 结果为 [s,f,a,d] 删除列表中的第一个值等于a
lists:dupilicate(5,xx). 结果为 [xx,xx,xx,xx,xx]
lists:flatten([a,[b,c],[d,[e,f]]]). 结果为 [a,b,c,d,e,f]   注: [{[1,2],[2,3,4]}]  结果为 [{[1,2],[2,3,4]}] 
lists:foldl(fun(X,Sum)->X+Sum end,10,[1,2,3,4,5]). 结果为 25   求和, 过程Sum=1,2+1,3+3,4+6,5+10,10+15  正序方式去处理
lists:foldr(fun(X,Sum)->X*Sum end,10,[1,2,3,4,5]) 结果为 1200 求积, 过程Sum=5,4*5,3*20,2*60,1*120,10*120  
lists:keydelete(a,2,[{a,b,c},{s,a,d},{a,a,a},{s,d}]). 结果为 [{a,b,c},{a,a,a},{s,d}] 删除列表中第一个元组满足此元组中的第二个元子等于a
lists:keymember(a,2,[{a,b,c},{s,a,d},{a,a,a},{s,d}]). 结果为 true 判断列表中有元组且此元组满足第二个元子等于a
lists:keysearch(a,2,[{a,b,c},{s,a,d},{a,a,a},{s,d}]). 结果为 {value,{s,a,d}} 查找列表中有元组且此元组满足第二个元子等于a,没有返回false
lists:keyreplace(a,2,[{a,b,c},{s,a,d},{a,a,a},{s,d}],{f,f}). 结果为 [{a,b,c},{f,f},{a,a,a},{s,d}] 替换满足条件的元组成{f,f}
lists:keymerge(1,[{a,b,c},{s,a,d}],[{a,a,a},{s,d}]). 结果为 [{a,b,c},{s,a,d},{a,a,a},{s,d}] 合并2列表,2列表中都是元组
lists:keysort(2,[{a,b,c},{s,a,d},{a,a,a}]). 结果为 [{s,a,d},{a,a,a},{a,b,c}] 按照列表中个元组的第二个元子大小排序
lists:keystore(a,2,[{a,b,c},{s,a,d},{a,a,a},{s,d}],{f,f}). 结果为 [{a,b,c},{f,f},{a,a,a},{s,d}] 替换满足条件的元组成{f,f},如果没有满足条件的元组就把新元组加到列表最后一个,注意跟lists:replace的区别
lists:keytake(a,2,[{a,b,c},{s,a,d},{a,a,a},{s,d}]). 结果为 {value,{s,a,d},[{a,b,c},{a,a,a},{s,d}]} 注意跟lists:keysearch的区别
lists:last([a,b,c,d]) 结果为 d 取列表的最后一个
lists:map(fun(X)->X*2 end,[1,2,3]). 结果为 [2,4,6] 对列表中的每一个元组进行函数计算,得到新的列表
lists:mapfoldl(fun(X,Sum)->{2*X,X+Sum} end,0,[1,2,3,4,5]). 结果为 {[2,4,6,8,10],15}
lists:max([a,d,g,j,c]). 结果为 j 取列表中最大的一个值
lists:min([a,d,g,j,c]). 结果为 a 取列表中最小的一个值
lists:member(a,[s,a,d]). 结果为 true 判断列表中是否有特定的元子或元组
lists:nth(3,[a,d,g,j,c]). 结果为 g 取列表中的第三个值
lists:nthtail(3,[a,d,g,j,c]). 结果为 [g,j,c] 取列表中第三个值以后的值
lists:partition(fun(A)->A rem 2 == 1 end,[1,2,3,4,5,6,7]). 结果为 {[1,3,5,7],[2,4,6]} 过滤列表
lists:prefix([s,d],[s,d,f,g]). 结果为 true 判断前一列表是否为后一列表的前缀
lists:suffix([f,g],[s,d,f,g]). 结果为 true 判断前一列表是否为后一列表的后缀
lists:reverse([a,b,c,d,e]). 结果为 [e,d,c,b,a] 求列表的反序
lists:seq(1,10). 结果为 [1,2,3,4,5,6,7,8,9,10] 自动生成1-10得值
lists:seq(1,20,3). 结果为 [1,4,7,10,13,16,19] 自动生成1-20中差3的值
lists:sort([4,2,1,5,1,3]). 结果为 [1,1,2,3,4,5] 列表排序
lists:sort(F, L) ->  List. F=fun(A,B) -> A>B end.   L=[3,2,1,4]或[a,g,d,s,h] 结果[4,3,2,1]或[s,h,g,d,a]从大到小的,反之修改条件
lists:usort([4,2,1,5,1,3]). 结果为 [1,2,3,4,5] 列表排序,去重复
lists:split(3,[a,b,c,d,f]). 结果为 {[a,b,c],[d,f]} 将原列表分割成2列表,第一个列表中包含原列表的头三个值
lists:splitwith(fun(A)->is_atom(A) end,[a,b,1,c,d,2,3,e]). 结果为 {[a,b],[1,c,d,2,3,e]} 分割列表,满足条件的为第一列表,直到第一个不满足条件为止
lists:sublist([a,b,c,d,f],3). 结果为 [a,b,c] 截取列表,注意跟lists:split的区别
lists:sublist([a,b,c,d,f],3,2). 结果为 [c,d] 截取列表,从第三个开始,截取2个
lists:sum(1,2,3,4,5). 结果为 15 求列表和
lists:zip([a,b,c],[d,e,f]). 结果为 [{a,d},{b,e},{c,f}]
lists:zipwith(fun(X,Y)->X+Y end,[1,2,3],[4,5,6]).
lists:filter(F,List) -> List1. 求List列表中的成员带入到F中,得到结果为true的成员,最后得到List1
lists:subtract(List,List1) -> List2. 按List1成员的顺序第一次找到List的成员,则删除对应成员,最后得到新列表List2. 
注:如果List中有两个List1的第一个成员,则只删除List中的第一个,例:([12332],[23]) ->[132], (先删除2,再删除3)
lists:duplicate(N, Elem) -> List (2,xx)   结果 [xx,xx]


二、erlang -string

string:len("abcdef"). 结果为 6 求字符串的长度
string:equal("abc","abc"). 结果为 true 判断2字符串是否完全相等
string:concat("abc","def"). 结果为 "abcdef" 合并字符串
string:chr("abdcdef",$d). 结果为 3 求某一字符在字符串中第一次出现的位置
string:rchr("abdcdef",$d). 结果为 5
string:str("hehe haha haha","haha"). 结果为 6 求某一字符串在字符串中第一次出现的位置
string:rstr("hehe haha haha","haha"). 结果为 11
string:substr("Hello World",4). 结果为 "lo World" 截取字符串
string:substr("Hello World",4,5). 结果为 "lo Wo" 截取字符串
string:tokens("asdhfgjjdttfg","df"). 结果为 ["as","h","gjj","tt","g"] 分割字符串
string:join(["aaa","bbb","ccc"],"@"). 结果为 "aaa@bbb@ccc" 用特定字符连接
string:chars($a,5). 结果为 "aaaaa"
string:copies("as",5). 结果为 "asasasasas"
string:words("aaa bbb ccc"). 结果为 3
string:words("abcbchdbjfb",$b). 结果为 4 用字符b分割,求个数
string:sub_words("abcbchdbjfb",3,$b). 结果为 "chd" 用字符b分割,取第三个
string:strip("    aaa  "). 结果为 "aaa" 去掉字符串两边的空格
string:strip("...aaa..",both,$.). 结果为 "aaa" 去掉字符串两边的.
string:left("hahaha",10). 结果为 "hahaha    " 截取前10个字符串,不足用空格补(string:right类似)(string:centre类似)
string:left("hahaha",10,$!). 结果为 "hahaha!!!!" 截取前10个字符串,不足用!补(string:right类似)(string:centre类似)
string:to_integer("123sa23"). 结果为 {123,"sa23"}
srring:to_lower("asFDds"). 结果为 "asfdds" 转换小写
srring:to_upper("asFDds"). 结果为 "ASFDDS" 转换大写






 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值