0
点赞
收藏
分享

微信扫一扫

erlang使用\


-module(stringSplit).

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

%% API functions

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

-export([split/1]).

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

%% Internal functions

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

split(Str) ->

Str).

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

split_string(L) ->

L1=lists:reverse(L),

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.


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

​​erlang的string模块​​



string


目录

  • ​1   导出函数​
  • ​​1.1   len(String) -> Length​​
  • ​​1.2   equal(String1,String2) -> bool()​​
  • ​​1.3   concat(String1,String2) -> String3​​
  • ​​1.4   chr(String,Character) -> Index​​
  • ​​1.5   str(String,SubString) -> Index​​
  • ​​1.6   span(String,Chars) -> Length​​
  • ​​1.7   substr(String,Start[,Length]) -> SubString​​
  • ​​1.8   tokens(String,SeparatorList) -> Tokens​​
  • ​​1.9   chars(Character,Number[,Tail]) -> String​​
  • ​​1.10   copies(String,Number) -> Copies​​
  • ​​1.11   words(String[,Character]) -> Count​​
  • ​​1.12   sub_word(String,Number[,Character]) -> Word​​
  • ​​1.13   strip(String[,Direction[,Character]]) -> Stripped​​
  • ​​1.14   left(String,Number[,Character]) -> Left​​
  • ​​1.15   centre(String,Number[,Character]) -> Centered​​
  • ​​1.16   sub_string(String,Start[,Stop]) -> SubString​​
  • ​​1.17   to_float(String) -> {Float,Rest} | {error,Reason}​​
  • ​​1.18   to_integer(String) -> {Int,Rest} | {error,Reason}​​
  • ​​1.19   to_lower(String) -> Result​​
  • ​​2   注意​​
  • ​​3   作者​​

字符串处理函数库。

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.


举报

相关推荐

0 条评论