本文主要是介绍RoR实战《第2招》- 无处不在的字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Ruby 语言中,字符串是 String 类的实例,因此任意的字符串变量、常量都可以调用 String 类的实例方法。 String 类是 Ruby 中最重要的类之一,拥有多个标准方法。
招数列表:
第2招 无处不在的字符串
2.1 创建字符串
2.2 字符串的%表示法
2.3 多行字符串表示方式
2.4 合并字符串
2.5 替换字符串内容
2.6 改变字符串
2.7 获取或替换字符和子字符串
2.8 比较两个字符串是否相等
2.9 比较两个字符串大小
参考资料:http://school.itzcn.com
2.1 创建字符串
Ruby 允许使用单引号( ' ' )或者双引号 (" ") 来创建字符串,这种单引号或者双引号就是字符串的分隔符。例如:
a="Ruby" # 定义字符串变量 a
b='Ruby' # 定义字符串变量 b
puts a==b # 判断两个变量是否相等,返回 true
虽然使用单引号和双引号都可以创建字符串,但是在 Ruby 语言中,使用这两种方式创建特殊字符串时,效果并不相同。使用单引号创建字符串,对括起来的字符串只进行最少替换;而使用双引号创建字符串,则对括起来的字符串进行更多替换,例如替换转义字符和其他特殊字符。
下表 列出了 Ruby 语言中常用的一些转义字符和特殊字符。
转义字符和特殊字符
字符串 | 含义 |
/a | 替换成 Bell 声所对应的符号 |
/nnn | nnn 表示一个八进制数值,替换成该八进制数所对应的字符 |
/b | 退格符,替换成退格键所对应的字符 |
/xnn | nn 表示一个十六进制数值,替换成该十六进制数所对应的字符 |
/e | 替换成 Escape 键所对应的字符 |
/cx | 替换成“ Ctrl+x ”组合键所对应的字符,其中 x 可以是任意键对应的字符 |
/C-x | 替换成“ Ctrl+x ”组合键所对应的字符,其中 x 可以是任意键对应的字符 |
/n | 换行符,替换成一个空行 |
/M-x | 替换成“ Alt+x ”组合键所对应的字符,其中 x 可以是任意键对应的字符 |
/r | 回车符,替换成一个回车 |
/M-/C-x | 替换成“ Ctrl+Alt+x ”组合键所对应的字符,其中 x 可以是任意键对应的字符 |
/s | 空白符,替换成一个空白字符 |
/t | 替换成一个“ Tab ”键所对应的字符 |
/v | 替换成一个垂直“ Tab ”键所对应的字符 |
#{expr} | 替换成变量或者表达式 expr 所对应的值 |
下面分别使用单引号和双引号创建一些特殊的字符串,如下代码所示。
puts 'hello /n world' # 在单引号中使用换行符
puts "hello /n world" # 在双引号中使用换行符
puts 'it is/sOK' # 在单引号中使用空白符
puts "it is/sOK" # 在双引号中使用空白符
puts '/141'+" "+"/141" # 替换八进制数 141 所对应的字符
puts '/x52'+" "+"/x52" # 替换十六进制数 x52 所对应的字符
puts '/v'+" "+"/v" # 替换垂直 Tab 对应字符
a="Ruby" # 创建局部变量
puts "I love #{a}" # 替换局部变量
puts 'I love #{a}' # 替换局部变量
上述代码中的执行结果如下所示:
hello /n world
hello
world
it is/sOK
it is OK
/141 a
/x52 R
/v
# 此处空白就是由“ /v ”替换结果
I love Ruby
I love #{a}
从上述结果中可以看出,对于使用双引号创建的字符串, Ruby 会对字符串中的转义字符和特殊字符进行替换,而使用单引号创建的字符串,则不执行替换。这样使得在程序中创建字符串更加方便,更加灵活,程序开发者可以根据实际需求来选择使用何种方式创建字符串。
2.2 字符串的%表示法
在创建字符串时,如果希望一个字符串是由多行文本字符组成,则可以使用 % 表示法。 % 表示法一共有三种形式:
- %/stuff/ 该形式中“ / ”是分隔符,可以是斜线、括号等字符。 stuff 表示一个多行文本字符串,这中形式类似于使用双引号创建字符串,对转义字符和特殊字符进行替换。
- %Q/stuff/ 与 %/stuff/ 用法完全相同
- %q/stuff/ 该形式中个部分的作用同 %/stuff/ 完全相同,只是使用该形式创建字符串类似于使用单引号创建字符串,只进行很少替换。
下面创建一个具体示例,如下代码 所示。
name=" 祝红涛 " # 创建变量 name
age=23 # 创建变量 age
sex=" 男 " # 创建变量 sex
info=%Q{ 个人信息调查 # 使用 %Q/stuff/ 形式创建多行文本字符串
姓名: #{name}
年龄: #{age}
性别: #{sex}
}
info1=%q( 个人信息调查 # 使用 %q/stuff/ 形式创建多行文本字符串
姓名: #{name}
年龄: #{age}
性别: #{sex}
)
puts info,info1 # 输出变量 info , info1
具体执行结果如下所示:
个人信息调查
姓名:祝红涛
年龄: 23
性别:男
个人信息调查
姓名: #{name}
年龄: #{age}
性别: #{sex}
本文就介绍到这里,有关ROR字符串的其他操作请关注本系列的其他文章。
这篇关于RoR实战《第2招》- 无处不在的字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!