免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2279 | 回复: 2
打印 上一主题 下一主题

Ruby学习笔记-String [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-23 10:48 |只看该作者 |倒序浏览
Ruby学习笔记-String

字符串(String)
1.创建字符串
       在Ruby中可以使用单引号和双引号两种方法来创建一个字符串。但是使用这两种方式创建特殊字符串时,效果有很大区别。
       双引号创建字符串:Ruby会对字符串中的转义字符和特殊字符进行替换;
       单引号创建字符串:不进行替换
示例:
  1. puts 'This stirng \n delimited by single quotes'                  #\n:换行符
  2. puts "This stirng \n delimited by double quotes"
  3.        s=”Ruby”
  4. puts 'Start to learn #{s}'                  
  5. puts " Start to learn #{s}"
  6. ------------------------------ Result -------------------------------
  7.      This stirng \n delimited by single quotes
  8. This stirng
  9.         delimited by double quotes
  10. Start to learn #{s}
  11.     Start to learn Ruby
复制代码
2.用%创建多行字符串
       如果希望一个字符串由多行文本字符组成的,可以使用%表示法来创建, 共有三种形式:
       %/ string / :其中”/”是分隔符,可以是斜线,括号等其它字符。”string”表示是一个多行文本字符串,此形式的功能类似于双引号创建的字符串。
       %Q/ string / :与%/ string / 用法相同。
       %q/ string / :此形式的功能类似于单引号创建的字符串。
示例:
  1.        name="Kobe"
  2. age = "23"
  3. gender = "male"
  4.        a=%q/
  5. name :#{name}
  6. age:#{age}
  7. gender:#{gender}
  8. /
  9. b=%Q {
  10. name :#{name}
  11. age :#{age}
  12. gender :#{gender}
  13. }
  14.       
  15.        puts a,b
  16. -----------------result--------------------
  17. name:#{name}
  18. age:#{age}
  19. gender:#{gender}

  20. name:Kobe
  21. age:23
  22. gender:male
复制代码
3. Here Document
       这是Ruby提供的别外一种多行字符串的表示形式,其格式如下:
       <<标识符
              #string
       标识符
Note: 必须以两个”<”开头,标识符可以是任意字符,起始与结束的标识符要一致; 另外,在Here Document的语法中,还可以把”<<”后面的标识符用单引号或双引号括起来,用于确定不同的替换程度;
示例:
  1.         name="Kobe"
  2. age = "23"
  3. gender = "male"

  4. a=<<info
  5. name:#{name}
  6. age:#{age}
  7. gender:#{gender}
  8. info
  9. puts a
  10. --------------------result-----------------------
  11.   name:Kobe
  12.    age:23
复制代码
gender:male

4. 字符串的常用操作
1.合并字符串:
       + :原有字符串的值不变
       << :是在原有字符串的基础上添加另一个字符串,会修改原有字符串的值。
示例:
  1.         a = "this is the first string!"
  2. b = "---second"
  3. c = a + b
  4. puts c,a
  5. d = a << b
  6. puts d,a
  7. -------------------result--------------------------
  8.  this is the first string!---second
  9.  this is the first string!
  10.  this is the first string!---second
  11.  this is the first string!---second
复制代码
2.替换字符串:
     可以使用Ruby内置类中的replace方法进行字符串替换;当有一个字符串对象的内容被替换时,指定这个字符串的变量都会变化;
示例:
  1.      a = "this is the first string!"
  2. b = a
  3. puts a,b
  4. b.replace("hellow world")
  5. puts a,b
  6. -----------------result------------------------
  7.  this is the first string!
  8.  this is the first string!
  9.  hellow world
  10.  hellow world
复制代码
3.改变字符串:
常用方法如下:
方法
说明

capitalize
将字符串首字母转换成大写

upcase
将字符串中所有字母转换成大写

downcase
将字符串中所有字母转换成小写

swapcase
将字符串大写字母转换成小写,小写字母转换成大写

strip
去掉字符串中的首尾空格

lstrip
去掉字符串中左边的空格

rstrip
去掉字符串中右边的空格

chop
删除字符串中的最后一个字符

chomp
删除字符串中的最后换行符

reverse
将字符串所有的单词倒过来,并将单词中的字符也倒过来


示例:
  1.     a = "this is the first string!"
  2. puts a.reverse
  3. puts a
  4. puts a.upcase
  5. puts a
  6. --------------result------------------
  7.  !gnirts tsrif eht si siht
  8.  this is the first string!           #原有字符串的值没有改变
  9.  THIS IS THE FIRST STRING!
  10.  this is the first string!
复制代码
4.获取或替换字符和子字符串:
     Ruby可以使用 [] 读取字符串中的字符或子字符串,使用 []= 方法可以替换字符串中的字符和子字符串; [] 方法的参数是字符的索引,返回一个ASCII码值,可以使用chr方法把它转换为字符;
示例:
  1. a = "abcdefghijklmnopqrstuvwxyz"
  2.    puts a[0]
  3.    puts a[0].chr
  4.    puts a[-1]                     #索引可为正数(从左开始,从0开始)或负数(从右开始,从-1开始)
  5.    puts a[-1].chr
  6.    puts a[2,5]                   #从索引为2的字符开始取5个字符
  7.    puts a[0] = "z"
  8.    puts a
  9.    a[10,5] = "AAAAA"
  10.    puts a
  11. ------------result---------------------------
  12. 97
  13. a
  14. 122
  15. z
  16. cdefg
  17. Q
  18. Qbcdefghijklmnopqrstuvwxyz
  19. QbcdefghijAAAAApqrstuvwxyz
复制代码
5.比较两个字符串是否相等:
     1. 使用”==”或内置访方法 eql? 来比较两个字符串内容是否相等;
     2. 使用 equal? 方法比较两个对象是否相同;
示例:
  1. if"one" == "one"   
  2.     puts "equal"
  3.     else
  4.        puts "unequal"
  5.     end     
  6. if "one".eql?("one")
  7.     puts "equal"
  8. else
  9.        puts "unequal"
  10. end
  11. if "one".equal?("one")
  12.     puts "equal"
  13. else
  14.     puts "unequal"
  15. end
  16. --------------------result---------------------
  17. equal
  18. equ  al
  19. unequal  
复制代码
6. <=>:比较两个字符串大小:
     字符串比较大小时实际比较的是字母的ASCII码;
示例
  1. puts "one" <=> "one"   
  2.     puts "one" <=> "two"
  3.     puts "one" <=> "apple"   
  4. if "a" > "b"
  5.          puts "a>b, true"
  6. else
  7.          puts "a>b, false"
  8. end
  9. ---------------result------------------
  10. 0
  11. -1
  12. 1
  13. a>b, false
  14.   
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-10-24 08:05 |只看该作者
又一个重复。

论坛徽章:
0
3 [报告]
发表于 2011-10-25 15:45 |只看该作者
谢谢分享,学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP