字符串处理函数
1.返回字符串的长度
str.length => integer

2.判断字符串中是否包含另一个串
str.include? other_str => true or false
"hello".include? "lo"#=> true"hello".include? "ol"#=> false"hello".include? ?h     #=> true

3.字符串插入:
复制代码
str.insert(index, other_str) => str
"abcd".insert(0, 'X')    #=> "Xabcd""abcd".insert(3, 'X')    #=> "abcXd""abcd".insert(4, 'X')    #=> "abcdX""abcd".insert(-3, 'X')
-3, 'X')   #=> "abXcd""abcd".insert(-1, 'X')   #=> "abcdX"
复制代码

4.字符串分隔,默认分隔符为空格
复制代码
str.split(pattern=$;, [limit]) => anArray
" now's the time".split        #=> ["now's", "the", "time"]"1, 2.34,56, 7".split(%r{,\s*}) #=> ["1", "2.34", "56", "7"]"hello".split(//)               #=> ["h", "e", "l", "l", "o"]"hello".split(//, 3)            #=> ["h", "e", "llo"]"hi mom".split(%r{\s*})         #=> ["h", "i", "m", "o", "m"]"mellow yellow".split("ello")   #=> ["m", "w y", "w"]"1,2,,3,4,,".split(',')         #=> ["1", "2", "", "3", "4"]"1,2,,3,4,,".split(',', 4)      #=> ["1", "2", "", "3,4,,"]
复制代码

5.字符串替换
str.gsub(pattern, replacement) => new_str
str.gsub(pattern) {|match| block } => new_str
"hello".gsub(/[aeiou]/, '*')              #=> "h*ll*"     #将元音替换成*号"hello".gsub(/([aeiou])/, '<\1>')         #=> "h<e>ll<o>"   #将元音加上尖括号,\1表示保留原有字符???"hello".gsub(/./) {|s| s[0].to_s + ''}   #=> "104 101 108 108 111 "
字符串替换二:
str.replace(other_str) => str
s = "hello"#=> "hello"
s.replace "world"#=> "world"

6.字符串删除:
str.delete([other_str]+) => new_str
"hello".delete "l","lo"#=> "heo""hello".delete "lo"#=> "he""hello".delete "aeiou", "^e"#=> "hell""hello".delete "ej-m"#=> "ho"

7.去掉前和后的空格
str.lstrip => new_str
" hello ".lstrip   #=> "hello ""hello".lstrip       #=> "hello"

8.字符串匹配
str.match(pattern) => matchdata or nil

9.字符串反转
str.reverse => new_str
"stressed".reverse   #=> "desserts"

10.去掉重复的字符
str.squeeze([other_str]*) => new_str
"yellow moon".squeeze                  #=> "yelow mon" #默认去掉串中所有重复的字符" now   is the".squeeze("")         #=> " now is the" #去掉串中重复的空格"putters shoot balls".squeeze("m-z")   #=> "puters shot balls" #去掉指定范围内的重复字符

11.转化成数字
str.to_i=> str
".to_i             #=> 12345

chomp和chop的区别:
chomp:去掉字符串末尾的\n或\r
chop:去掉字符串末尾的最后一个字符,不管是\n\r还是普通字符
复制代码
"hello".chomp            #=> "hello""hello\n".chomp          #=> "hello""hello\r\n".chomp        #=> "hello""hello\n\r".chomp        #=> "hello\n""hello\r".chomp          #=> "hello""hello".chomp("llo")     #=> "he""string\r\n".chop   #=> "string""string\n\r".chop   #=> "string\n""string\n".chop     #=> "string""string".chop       #=> "strin"
复制代码
转载自:http://blog.163.com/ma95221@126/blog/static/2482210220100159515220/ 

ruby 字符串的更多相关文章

  1. ruby 字符串学习2

    在一个ruby字符串中包含表但是或者变量.想使用不同的值替换表达式或者变量 1 类似java 或者python的printf-style方式 template = 'Oceania has alway ...

  2. 雷林鹏分享:Ruby 字符串(String)

    Ruby 字符串(String) Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符. 最简单的字符串是括在单引号(单引号字符)内.在引号标记内的文本 ...

  3. Ruby字符串(1):String基本用法

    String字符串 字符串由String类提供,除了直接使用单双引号或其它字面量创建字符串,也可以使用String.new()方法来创建. a = "hello" b = Stri ...

  4. Ruby字符串

    在Ruby中的String对象持有和操纵的任意序列的一个或多个字节,通常表示人类语言的字符表示.简单的字符串文本括在单引号中,如 'This is a simple Ruby string liter ...

  5. ruby 字符串学习笔记1

    1 从一种数据结构中构件字符串 hash = { key1: "val1", key2: "val2" } string = "" hash ...

  6. ruby字符串相关方法

    构造字符串字面量 方法一:最简单的使用单引号或者双引号括起来的字符串,比如"hello". 方法二:使用%q配合分界符,%q代表单引号str=%q!he/lo! 方法三:使用%Q配 ...

  7. Ruby字符串的一些方法

    最近因为公司需求开始看ruby,先从ruby的基本数据类型开始看 看到ruby的字符串类型string,发现ruby中的字符串单双引号是不一样的,这点和Python有那么点不一样 主要是我们对字符串进 ...

  8. ruby 字符串常用方法学习

    引用链接:http://www.blogjava.net/nkjava/archive/2010/01/03/308088.html 1,切片:silce, [ ]-----------------[ ...

  9. Ruby字符串(2):String方法详细整理

    String方法整理 官方手册 类方法 new new(str="") → new_str new(str="", encoding: enc) → new_s ...

  10. ruby字符串学习笔记5

    1获取字符串某部分 s = "My kingdom for a string!" s.slice(3,7) # kingdom s[3,7] # kingdom s[/.ing/] ...

随机推荐

  1. Android 两种注册、发送广播的区别

    前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver.主要介绍两种发送和注册广播的区别. BroadcastReceiver广播接收者用于接收系统 ...

  2. Web支持可暂停的超大文件上传

    代码镇顶:https://github.com/dna2github/petalJS/blob/master/upload 前些天遇到用户须要上传10GB大小以上的文件的需求,查查网上的库.都不好用. ...

  3. 2016.6.20 eclipse中的jsp文件的字体大小在哪里修改

    刚打开eclipse的时候,觉得jsp文件的字体太小了.于是去修改字体,但是colors and fonts里的字体选项太多了,不知道哪一个是. 试了几个后发现,是structured text ed ...

  4. linux中find的用法

    找所在目录的文件用 find -name “file*” -print  #注意不要用加文件路径,查找文件也好用双双引号括住: 也可以 find ./ -name “file*” -print

  5. java命令行

    Launches a Java application. Synopsis java [options] classname [args] java [options] -jar filename [ ...

  6. Java千百问_05面向对象(006)_is-a,has-a,like-a是什么

    点击进入_很多其它_Java千百问 1.is-a,has-a,like-a是什么 在面向对象设计的领域里,有若干种设计思路,主要有例如以下三种: is-a.has-a.like-a java中在类.接 ...

  7. Linux 编译ffmpeg 生成ffplay

    本来主要介绍linux环境下如何编译ffmpeg使之生成ffplay.编译总是离不开源码的版本,以及编译环境下:编译环境Ubutun 16.04 ,ffmpeg 版本3.4.2.如何下载ffmpeg ...

  8. Spark源码分析之九:内存管理模型

    Spark是现在很流行的一个基于内存的分布式计算框架,既然是基于内存,那么自然而然的,内存的管理就是Spark存储管理的重中之重了.那么,Spark究竟采用什么样的内存管理模型呢?本文就为大家揭开Sp ...

  9. 链接脚本使用一例2---将二进制文件 如图片、MP3音乐、词典一类的东西作为目标文件中的一个段

    参考文章: <程序员的自我修养——链接.转载与库> P68 这里介绍两种方法,实现将将一张图片作为二进制可执行程序的一个段,其中第一种方法在我之前的博客中已经有所介绍,不过,那是采用的是交 ...

  10. linux下开启ftp的21号port

    1.先执行vsftpd服务: #service vsftpd start 2.通过iptables开放21号port (1) 先查看iptables设置: #iptables -nL Chain IN ...