Ruby 字符串

字符串是一种用于表示文本数据的。例如,

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"]
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战