为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。

Ruby/字符串处理

来自NOCOW
跳转到: 导航, 搜索

目录

[编辑] 创建字符串

在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!


个人工具