函数名称

说明

示例

*

将字符串拷贝N次

“ha”*4    >> “hahahaha”

+

<< 

concat

连接字符串

“yes” + “no”  >> “yesno”

"yes" << "no" >> “yesno”

"yes".concat("no")

<=>

比较字符串,返回值如下:

大于:-1   等于:0    小于:1

"Ab" <=> "ab" >> -1

"ab" <=> "ab" >> 0

"ab" <=> "Ab" >> 1

== 或 ===

判断两个对象是否相等

"1" == "1"   >>true

"1" == 1     >>flase

=~

匹配正则表达式

"abc123abc" =~ /"d/ >> 3

[ ] 或 slice

返回字符串的某一范围内的值

“abc”[0,2]           >> “ab”

"hello"[/llo/]          >> “llo”

“abc” slice [0,2]      >> “ab”

[ ]=

替换字符串的某一范围内的值

a = “hello word”

a[1,2]= “OO”

puts a    >>” hOOlo word”

capitalize

capitalize!

把字符串的首字母大写,其他字母小写

"hi,Ruby".capitalize

>> “Hi,ruby”

chomp

chomp!

删除字符串后的空白字符

"string"r"n".chomp

>> ” string”

chop

删除最后一个字符

"string".chop >> “strin”

count

返回该字符串中含的字符个数

a = "hello world" 

a.count "lo" >> 5

次)

delete

delete!

删除字符

"hello".delete "l","lo"  » "heo" 

"hello".delete "lo"      » "he" 

downcase

downcase!

将大写字母改写为小写

"hEllO".downcase  » "hello" 

upcase

upcase!

将小写字母改写为大写

"hEllO".upcase » "HELLO" 

swapcase swapcase!

将所有的大写字母改为小写字母,

小写字母改为大写字母。

"Hello".swapcase » "hELLO" 

each

对字符串中的各行进行迭代操作

"Hi"nRuby". each { |s| puts s}

each_byte

对字符串中的各个字节进行迭代操作

"Hi"nRuby". each_byte { |s| puts s}

each_line

对字符串中的每一行进行迭代操作

"Hi"nRuby". each_line { |s| puts s}

empty?

判断字符串是否为空

"hello".empty?    » false 

"".empty?         » true 

gsub

gsub!

以replace来替换字符串中所有与pattern相匹配的部分

"hello".gsub(/[aeiou]/, '*')  » "h*ll*"

hash

返回字符串的哈希值

"h".hash    >> 107

include?

若字符串中包含substr子字符串的话,就返回真

"hello".include? "lo" » true 

"hello".include? "ol" » false 

index

按照从左到右的顺序搜索子字符串,并返回搜索到的子字符串的左侧位置. 若没有搜索到则返回nil

"hello".index('lo')     » 3 

"hello".index('a')      » nil 

length

返回字符串的字节数

"hello".length   >> 5

replace

替换字符串的内容

s = "hello"           » "hello" 

s.replace "world"     » "world" 

sub 或 sub!

用replace来替换首次匹配pattern的部分。

"hello".sub(/[aeiou]/, '*') 

» "h*llo" 

reverse

reverse!

对字符串进行反转

"stressed".reverse » "desserts" 

scan

使用正则表达式re反复对self进行匹配操作,并以数组的形式返回匹配成功的子字符串

a = "cruel world" 

a.scan(/"w+/)    » ["cruel", "world"] 

a.scan(/.../)      » ["cru", "el ", "wor"]

split

使用sep指定的pattern来分割字符串,并将分割结果存入数组

"mellow yellow".split("ello") 

» ["m", "w y", "w"]  

squeeze

squeeze!

压缩由str所含字符构成的重复字符串

"yellow moon".squeeze 

» "yelow mon" 

" now   is the".squeeze(" ") 

» " now is the" 

strip

strip!

删除头部和尾部的所有空白字符。空白字符是指" "t"r"n"f"v"。

"    hello    ".strip » "hello" 

""tgoodbye"r"n".strip » "goodbye"

tr 或tr!

若字符串中包含search字符串中的字符时,就将其替换为replace字符串中相应的字符

hello".tr('aeiou', '*')     » "h*ll*" 

"hello".tr('^aeiou', '*')   » "*e**o" 

tr_s 或tr_s!

个字符

"hello".tr_s('l', 'r')       » "hero" 

"hello".tr_s('el', '*')      » "h*o" 

"hello".tr_s('el', 'hx')    » "hhxo" 

upto

在从self到max的范围内,依次取出下一个字符串”后将其传给块,进行迭代操作

"a1".upto("a3") {|s| puts s}

» a1"na2"na3

to_f

将字符串转为浮点数

"45.67 degrees".to_f » 45.67 

to_i

将字符串转为整数

"99 red balloons".to_i » 99 

to_s

将字符串转为字符串

 

Ruby语言学习系列--String 类函数的更多相关文章

  1. C语言学习系列笔记

    1.小甲鱼 C语言教程系列

  2. ruby语言学习笔记2

    ruby学习笔记2  (摘自<ruby程序设计语言教程(中文版)>.pdf,全书25页) 1.同一个问题ruby有多个解决方案,途径 ruby之父:松本行弘(Matz),1993年创立 r ...

  3. Ruby语言学习笔记

    在codecademy上开始玩ruby了 1.数据类型:boolean,string,number 变量直接用即可,不用声明(“拿来主义”) 运算符:+ - * / ** % == != && ...

  4. C语言学习系列(一)开门首篇

    一.特辑 此次是我自己的学习之路,和大家一起分享(我现在是做Java),途中遇到什么问题大家也可以提出来一起讨论一起进步: 主要参考教程是菜鸟教程上面的C语言教程,以及大学课本C语言教程-第四版(谭浩 ...

  5. C#学习系列-String与string的区别

    参考:http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=9851&m=9832&ct=31042 如 ...

  6. 语言学习系列-Scala连接数据库示例

    Scala语法 预装数据库Mysql,登录用户名密码为:root:root,建立数据库test1,建立数据表emp: package com.ccb.day1   import java.sql.Dr ...

  7. 五语言学习系列 C,C++,Objective-C,Java,C# (一)历史

    C:由AT&T贝尔实验室的Dennis Ritchie于1972年创建的,是专为开发者设计的语言. C++:在C基础上,1983年又由贝尔实验室的Bjarne Strou-strup推出了C+ ...

  8. Spark Scala语言学习系列之完成HelloWorld程序(三种方式)

    三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. windows下安装好scala后,直接C ...

  9. C语言学习系列(六)基本语法

    一.C运算符 算术运算符(语法和java类似或基本一样略过不再描述) 关系运算符(略) 逻辑运算符(略) 位运算符 运算符 描述 实例 & 如果同时存在于两个操作数中,二进制 AND 运算符复 ...

随机推荐

  1. 配置Jenkins构建失败触发邮件报警机制

    系统管理 1.进入系统管理-->系统设置 定位到Jenkins Location配置项   配置系统管理员邮件地址 系统管理员邮件地址需要同发送报警邮件地址相同 定位到邮件通知   配置SMTP ...

  2. Swiper使用方法(向前和向后按钮在swiper-container外面)

    Swiper插件的使用 1.HTML <!-- Swiper --> <section class="swipper"> <div class=&qu ...

  3. Tomcat的error-page掩盖action实例化的exception

    在使用Struts2+Spring+Tomcat开发的时候,为了避免骚扰用户,线上系统我们一般会定义错误处理页面.但是如果开发环境中也这么做(在web.xml定义了错误转发页面),而碰巧某个actio ...

  4. ListView的另一种可读性更强的ViewHolder模式写法

    常见的写法是这样的: @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHol ...

  5. django drf 动态权限配置和动态seriaizer_class配置

    可以通过重写get_permissions方法和get_serializers_class方法来实现动态的配置权限和序列化 VIewDemo class RegUserSet(mixins.Creat ...

  6. iOS App的加固保护原理

    本文由  网易云发布. 本文从攻防原理层面解析了iOS APP的安全策略.iOS以高安全性著称,但它并非金刚不坏之身.对于信息安全而言,止大风于青萍之末是上上策,杭研深入各个细节的研发工作,正是网易产 ...

  7. jQuery基础笔记 事件(6)

    day56 参考:https://www.cnblogs.com/liwenzhou/p/8178806.html#autoid-1-9-6 事件 *****         1. 目前为止学过的绑定 ...

  8. 【xsy1058】 单词 乱搞

    题目大意:给你$n$个长度为$m$的字符串,字符集仅为{x,y,z}三个字符,定义两个字符串$(s_i,s_j)$的相似度为$\sum_{k=1}^{m} [s_i[k]==s_j[k]]$. 从$0 ...

  9. 使用python+selenium对web进行自动化测试

    想用python代码,对web网页进行自动化测试 web自动化测试和手动测试的区别: 手动测试:通过手动去对网页的功能进行点点点 web自动化:可以通过代码,自动对网页点点点 首先,将python+s ...

  10. apache2.4配置weblogic12c集群(linux环境)

    首先确定环境已装apache2.4,没装的话可以看下这篇文章apache2.4一键脚本安装(linux环境) 1.下载apache分发模块mod_wl_24.so 下载apache2.4的weblog ...