翻译: | gashero |
---|
转载:erlang的string模块
方便以后开发查看。
字符串处理函数库。
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