为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
Ruby/字符串处理
来自NOCOW
< Ruby
目录 |
[编辑] 创建字符串
在Ruby中创建一个字符串有多种方式。可以有两种方式表示一个字符串:用一对单引号包围字符('str')或用一对双引号包围字符("str")
这两种形式的区别在于对于包围的字符串的处理,用双引号构造的字符串能处理更多的转移字符。
除了这两种方式,ruby还支持3种方式去构建字符串:%q、%Q和here documents。
- %q后面用一对分界符包围的字符可以构造单引号字符串。
- %Q后面用一对分界符包围的字符可以构造双引号字符串。
PS:分界符可以是任何一个非字母数字的单字节字符,如() [] {} <> //。
- here documents
str=<<END_OF_STRING a string END_OF_STRING
ruby中并不会去掉字符串开头的空格。
#5种构建字符串hello world的方法对比 'hello world' "hello world" %q/hello world/ %Q{hello world} str=<<EOS hello world EOS
[编辑] 属性
[编辑] 长度
使用length函数 例s:='abc123',其长度为6 输入i:=length(s); 则输出i:=6;
解析失败 ("texvc"执行文件遗失;请参照math/README进行配置。): 插入数学公式 ==常用操作==
[编辑] 删除
str.delete(str1,str2,...)
#删除参数交集出现的所有字符,返回一个新字符串,如: "hello world".delete("l") #返回"heo word" "hello world".delete("lo","o") #返回"hell wrld"
str.delete!(str1,str2,...)
#直接对str进行删除操作,同时返回str如: str="hello world" str2=str.delete("l") #str为"hello world",str2为"heo word" str.delete!("l") #str为"heo word"
#用正则,直接对str进行删除操作,同时返回str如: str="hello world" str2=str.gsub(/1/,"") #str为"hello world",str2为"heo word" str.gsub!(/1/,'') #str为"heo word"
[编辑] 查找
pos(s1,s2) 函数,其功能是在s2串中查找是否有s1子串,如果有则返回s1在s2中的起始位置,否则返回值为0。如y:=pos(‘abc’,’123abacbcabcabcabc’);则整数变量y的值为10,而y:=pos(‘abc’,’qawsasd’);则y的值为0。
[编辑] 比较
字符串可以进行下列六种关系运算:>、<、=、>=、<=、<>。 在关系比较时,无论比较的两个字符串长度是否相同,从左到右按照它们的ASCII码值逐一进行比较。 当两个字符的ASCII值不等时,便可比较出大小。若短字符串和长字符串的左边字符都相等时,长串比短串值大。如:‘abcde’>‘abc’为true;‘abcde’<‘aefgh’为true。
[编辑] 连接字符串
concat(s1,s2,……,sn) 函数,作用是把n个字符串按序连接起来构成一个新的字符串。如s:=concat(‘abcd’,’efg’,’hijklmn’);则结果为’abcdefghijklmn’。
[编辑] 求字串
[编辑] 大小写转换
downcase()将传入的字符串全部转换为小写,并返回转换后的字符串,该函数的格式如下: String strtolower(str $str) 参数$str为要转换的字符串,将字符串中所有字符转换为小写。 strtoupper()则是小写转换为大写,格式与上相同。
[编辑] 转换成数字
将数value转化成数字串st。如果value是实数,则系统会先把value转换成浮点数形式,然后再转换成字符串给st。如str(123,s),则s=‘123’;如str(123.456,s),则s=‘1.2345600000E+02’。 val(st,value,code) 过程,将数字串st转化为数value,code用来表示转换是否成功,转换成功则为0,否则code返回检测出错的第一个字符位置,且value的值也为0。如val(‘123abc’,s,t);则t=4,s=0;如val(‘123’,s,t),则t=0,s=123。
[编辑] 特殊字符处理
str.chop
#删除字符串str的最后一个字符,并返回新字符串 #若字符串以\r\n结尾,则两个字符都删去 #若字符串为空串,则返回空串 "string\r\n".chop #返回"string" "string\n\r".chop #返回"string\n" "string".chop #返回"strin" "s".chop.chop #返回""
str.chop!
str.chomp(endstr)
#删除str的后缀endstr #如果未指定endstr,则删除回车换行符(\r、\n和\r\n) "hello\r\n".chomp #返回"hello" "hello".chomp("lo")#返回"hel" "hello".chomp("l") #返回"hello"
str.chomp!