erlang使用\

来源:互联网 发布:中世纪优化9圣物 编辑:程序博客网 时间:2024/05/16 07:22

-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模块
转自:http://blog.csdn.net/summerhust/article/details/7205017

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 | bothCharacter=char()

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

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

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

String=Left=string()Character=charNumber=integer()

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

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

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

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

String=Centered=string()Character=charNumber=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) -> CharResultto_upper(String) -> Resultto_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.