字符串是一种用于表示文本数据的。例如,
message = "Hello, world!"
puts message
# Output: Hello, world!
在这里,"Hello, world!"
是一个存储在 message
变量中的字符串。
创建字符串
在 Ruby 中,您可以通过将文本括在双引号(" "
)或单引号(' '
)中来创建字符串。例如,
greeting = "Good Morning"
language = 'Ruby'
puts greeting
put language
输出
Good Morning Ruby
在这里,"Good Morning"
和 'Ruby'
都是字符串。
注意: Ruby 字符串区分大小写(大写和小写字母被视为不同)。
例如,"Good Morning"
与 "good morning"
不同,因为 "G"
和 "g"
被视为不同的值。
字符串插值
字符串插值允许您将变量的值插入到字符串中。例如,
name = "Taylor"
puts "Hello #{name}"
输出
Hello Taylor
在字符串中,#{name}
告诉 Ruby 查看 name
变量并在此处插入其值。
但是,字符串插值仅在双引号字符串中有效。在单引号字符串中无效。例如,
name = "Taylor"
puts 'Hello #{name}'
输出
Hello #{name}
是的!Ruby 允许您使用字符串插值将表达式(而不仅仅是变量)插入到字符串中。例如,
puts "2 + 2 is #{2 + 2}"
# Output: 2 + 2 is 4
这里,
- Ruby 首先计算
#{}
中的表达式,即2 + 2
。 - 结果 4 将替换整个
#{2 + 2}
部分。 - 所以最终的字符串是:
"2 + 2 is 4"
。
字符串连接
字符串连接是指将字符串连接在一起形成一个单一字符串。执行此操作的几种方法如下:
1. 使用 + 运算符
您可以使用 +
运算符连接两个字符串。
first_name = "Amber"
last_name = "Smith"
# Concatenates the first and last name with a space in between
puts first_name + " " + last_name
输出
Amber Smith
在上面的示例中,我们使用 +
运算符将 "Amber"
、一个空格 " "
和 "Smith"
连接成一个完整的字符串。
2. 使用 << 运算符
您可以使用 <<
运算符将一个字符串添加到另一个字符串的末尾。例如,
greeting = "Hello"
greeting << ", world!"
puts greeting
输出
Hello, world!
访问字符串中的字符
Ruby 字符串由字符组成,每个字符都有一个位置(称为索引),从 0 开始。
您可以使用方括号 []
访问字符串中的单个字符。例如,
text = "hello"
puts text[0]
puts text[1]
输出
h e
在此示例中
text[0]
给出第一个字符:"h"
。text[1]
给出第二个字符:"e"
。
Ruby 字符串方法
在 Ruby 中,字符串是对象;这意味着您可以调用方法来执行操作,例如更改大小写、检查长度或替换字符。
一些常用的字符串方法包括:
方法 | 描述 |
---|---|
upcase |
将所有字母转换为大写。 |
downcase |
将所有字母转换为小写。 |
strip |
删除字符串两端的空白字符。 |
length |
返回字符串中的字符数。 |
include?("x") |
如果字符串包含 "x" ,则返回 true ;否则返回 false 。 |
gsub("a", "b") |
将字符串中所有匹配的 "a" 替换为 "b" 。 |
sub("a", "b") |
将字符串中第一次出现的 "a" 替换为 "b" 。 |
split(" ") |
使用空格(或其他分隔符)将字符串分割成数组。 |
chars |
返回一个包含单个字符的数组。 |
slice(start, len) |
从给定的起始索引和长度返回一个子字符串。 |
capitalize |
仅将字符串的第一个字母大写。 |
reverse |
反转字符串内容。 |
接下来,让我们通过示例探索其中一些方法。
示例 1:更改字符串的大小写
要更改字符串的大小写,可以使用 .upcase
和 .downcase
方法。
puts "hello".upcase
puts "WORLD".downcase
输出
HELLO world
这里,
upcase
将所有字母转换为大写:"hello"
变为"HELLO"
。downcase
将所有字母转换为小写:"WORLD"
变为"world"
。
示例 2:获取字符串的长度
要查找字符串中的字符数,请使用 .length
方法。
puts "Ruby".length
# Output: 4
在这里,我们得到了 "Ruby"
的长度,即 4。
示例 3:删除多余的空格
要删除字符串开头和结尾的空格,请使用 .strip
方法。
puts " hello "
puts " hello ".strip
输出
hello hello
示例 4:替换字符串的一部分
要将字符串的一部分替换为其他内容,请使用 .gsub
方法。
puts "dog".gsub("d", "f")
puts "I like cats and cats like me".gsub("cats", "dogs")
输出
fog I like dogs and dogs like me
gsub
方法会替换给定字符串中匹配的字符串或模式的所有出现。
例如,"cats"
的两个实例都替换为 "dogs"
。
示例 5:检查字符串是否包含内容
要检查字符串中是否存在某个单词或字母,请使用 .include?
方法。
.include?
方法如果找到给定的子字符串,则返回 true
,否则返回 false
。
puts "ruby programming".include?("ruby")
puts "ruby programming".include?("python")
输出
true false
在这里,字符串 "ruby programming"
- 包含
"ruby"
,因此方法返回true
。 - 不包含
"python"
,因此方法返回false
。
同样,如果您要搜索 "uby"
,它仍然会返回 true
,因为 "uby"
作为 "ruby"
的一部分存在于字符串中。
示例 6:将字符串分割成部分
要将字符串分解为一系列较小的字符串,请使用 .split
方法。
p "one two three".split
# Output: ["one", "two", "three"]
默认情况下,split
使用 空格作为分隔符 将字符串分割成单词数组。
您也可以按其他字符分割,例如逗号。
p "apple,banana,grape".split(",")
# Output: ["apple", "banana", "grape"]