注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

眼睛想旅行

技术就是我的生命与信仰!

 
 
 

日志

 
 
关于我

精通C,C++,python,Erlang。并熟悉各种其他编程语言,用cocos2dx游戏引擎作过几个项目。会MySQL增删改查,了解OpenGL渲染原理。懂单片机,能设计数字电路系统,会画电路图和设计电路板。喜欢了解最新前沿技术,并持续关注和学习新技术。

网易考拉推荐

erlang使用";"号分割字符串(转)  

2014-07-07 21:21:55|  分类: Erlang |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

-module(stringSplit).

%% ====================================================================

%% API functions

%% ====================================================================

-export([split/1]).

%% ====================================================================

%% Internal functions

%% ====================================================================

split(Str) ->

    split_string(Str).

%%split string with semicolon(; semicolon's ascii is 59)

split_string(L) ->

    L1=lists:reverse(L),

    sub_split_string([],L1,[]).

sub_split_string([],[],Result) -> Result;

sub_split_string(R1,[],Result) -> [R1|Result];

sub_split_string(R1,[H|T],Result) ->

    case H of

        59 ->

            case R1 of 

                [] -> sub_split_string([],T,Result);

                _  -> sub_split_string([],T,[R1|Result])

            end;

        _ -> sub_split_string([H|R1],T, Result)

    end.

转自:http://blog.csdn.net/shallowgrave/article/details/8244358

接着又在网上找到了这个string的模块。发现这个功能更加强大。

erlang的string模块

string

目录

字符串处理函数库。

1   导出函数

1.1   len(String) -> Length

String=string()
Length

返回字符串的字符数。

1.2   equal(String1,String2) -> bool()

String1=String2=string()

测试两个字符串是否相等,如果相等返回 true ,不相等返回 false 。

1.3   concat(String1,String2) -> String3

String1=String2=String3=string()

连接两个字符串成为新的字符串,返回新的字符串。

1.4   chr(String,Character) -> Index

String=string()
Character=char()
Index=integer()

返回一个字符串中某个字符第一次出现的位置,如果不存在则返回0。

函数 rchr 拥有相同参数,但是从右侧开始计算。

1.5   str(String,SubString) -> Index

String=SubString=string()
Index=integer()

返回子串匹配位置,未匹配则返回0。例如:

> string:str(" Hello Hello World World ", "Hello World").
8

函数 rstr 拥有相同参数,但是从右侧开始计算。

1.6   span(String,Chars) -> Length

String=Chars=string()
Length=integer()

返回String匹配Chars中最多字符长度,从前开始。例如:

> string:span("t    abcdefg"," t").
5
> string:cspan("t    abcdefg"," t").
0

函数 cspan 则是取从前开始第一个匹配时前面不匹配的部分。后面的Chars可以包含多个字符用于匹配。

1.7   substr(String,Start[,Length]) -> SubString

String=SubString=string()
Start=Length=integer()

取得字符串的子字符串,可以指定开始处和长度,长度可省略。例如:

> string:substr("Hello World",4,5).
"lo Wo"

1.8   tokens(String,SeparatorList) -> Tokens

String=SeparatorList=string()
Tokens=[string()]

根据分隔符号列表中的字符将字符串切割成词法符号。例如:

> string:tokens("abc defxxghix jkl","x ").
["abc","def","ghi","jkl"]

1.9   chars(Character,Number[,Tail]) -> String

Character=char()
Number=integer()
String=string()

返回包含指定数目个字符的字符串,可选的指定随后跟着的字符串Tail。

1.10   copies(String,Number) -> Copies

String=Copies=string()
Number=integer()

返回包含指定数量份复制过的字符串。

1.11   words(String[,Character]) -> Count

String=string()
Character=char()
Count=integer()

返回字符串中的单词个数,分隔符可以在第二个可选参数指定。例如:

> string:words(" Hello old boy!",$o).
4

注意分隔字符必须以美元符号开头,后面指定,如上的 $o 。

1.12   sub_word(String,Number[,Character]) -> Word

String=Word=string()
Character=char()
Number=integer()

返回指定位置的单词,单词间的分隔符定义同上。注意这里的位置数字是以1开始的。例如:

> string:sub_word(" Hello old boy !",3,$o).
"ld b"

1.13   strip(String[,Direction[,Character]]) -> Stripped

String=Stripped=string()
Direction=left | right | both
Character=char()

返回去掉了两端空白的字符串,可以指定方向和空白字符。 strip/1 等同于 strip(String,both) 。例如:

> string:strip("...Hello.....",both,$.).
"Hello"

1.14   left(String,Number[,Character]) -> Left

String=Left=string()
Character=char
Number=integer()

返回从左起,调整过长度为指定数字的字符串,可以指定后面跟的填充字符,默认为空格。如果字符串太长也不会被截断。例如:

> string:left("Hello",10,$.).
"Hello....."

函数 right 拥有相同的参数,只不过会将字符串右对齐。

1.15   centre(String,Number[,Character]) -> Centered

String=Centered=string()
Character=char
Number=integer()

将字符串中间对齐扩充到指定长度,不足不用用空格或指定字符填充。

1.16   sub_string(String,Start[,Stop]) -> SubString

String=SubString=string()
Start=Stop=integer()

返回字符串的子字符串,可以指定开始位置和结束位置。例如:

> string:sub_string("Hello World",4,8).
"lo Wo"

注意不同于 substr 的指定开始和长度,这个函数是指定开始和结束。

1.17   to_float(String) -> {Float,Rest} | {error,Reason}

String=string()
Float=float()
Rest=string()
Reason=no_float | not_a_list

将一个开始于浮点数的字符串转换成浮点数,剩余无法识别的会返回。例如:

> {F1,Fs}=string:to_float("1.0-1.0e-1"),
> {F2,[]}=string:to_float(Fs),
> F1+F2.
0.900000
> string:to_float("3/2=1.5").
{error,no_float}
> string:to_float("-1.5eX").
{-1.50000,"eX"}

1.18   to_integer(String) -> {Int,Rest} | {error,Reason}

String=string()
Int=integer()
Rest=string()
Reason= no_integer | not_a_list

将参数中以整数开头的字符串转换成整数和剩余部分。例如:

> {I1,Is}=string:to_integer("33+22"),
> {I2,[]}=string:to_integer(Is),
> I1-I2.
11
> string:to_integer("0.5").
{0,".5"}
> string:to_integer("x=2").
{error,no_integer}

1.19   to_lower(String) -> Result

String=Result=string()
Char=CharResult=integer()

将字符或字符串转换成大写或小写的形式。其他形式:

to_lower(Char) -> CharResult
to_upper(String) -> Result
to_upper(Char) -> CharResult

2   注意

这里面有些函数看起来有点像,这是因为 string 包是由以前的两个包合并而成,以前的函数全部都保留下来了。

正则表达式函数放在了独立的模块 regexp 中了。旧的入口点为了向后兼容也保留了,不过在未来的发行版中会取消,所以建议用户使用新的模块。

string 中没有文档化的函数不要使用。

3   作者

Robert Virding - support@erlang.ericsson.se

Torbjorn Tornkvist - support@erlang.ericsson.se

This entry was posted on Monday, March 31st, 2008 at 19:29 and is filed under Erlang. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

  评论这张
 
阅读(544)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017