Ruby 字符串串联
字符串是由一个或多个字母数字字符和符号组成的阵列。几乎可以肯定的是,你将在你的程序中使用字符串。它们允许你接受用户的输入并向用户显示信息。
本教程将帮助你了解如何创建字符串,打印字符串,以及字符串连接。
如何创建一个Ruby字符串
在Ruby中,我们通过将字符用单引号或双引号括起来来创建一个字符串。下面的例子显示了有效的Ruby字符串。
'I am a string'
"I am string"
Ruby并不关心你用哪种方法来创建一个字符串,只要你是一致的。因此,如果你用单引号打开,就用单引号结束。
如何打印一个字符串
有两种方法可以向用户显示一个字符串。第一种方法是打印。
print "Hello, I am a string"
Hello, I am a string
print方法在打印字符串时不添加新行。所有的字符串值都被附加到一个行中。为了说明这一点,创建一个文件并添加打印语句。
print "First"
print "Second"
print "Third"
print "Fourth"
如果你运行该文件
ruby strings.rb
你将得到类似于下图的输出。
FirstSecondThirdFourth
显示字符串的另一个选项是puts方法。puts方法将在一个字符串后追加一个新行,如下图所示。
puts "First"
puts "Second"
puts "Third"
puts "Fourth"
运行该程序。
ruby strings.rb
输出如下图所示。
First
Second
Third
Fourth
变量字符串
你可以将字符串存储为一个变量,以便以后使用。创建一个变量名,并将其值作为字符串传递。
name = "John Doe"
一旦你定义并初始化了这个变量,你就可以通过引用它的名字来使用它。
puts name
=> John Doe
字符串串联
字符串连接是指将多个字符串合并为一个字符串实体的过程。
让我们学习如何在Ruby中组合字符串。
方法1 :使用(+)运算符
在Ruby中组合字符串的最简单方法是使用连接操作符。该操作符将连续追加传递的字符串。
注意:在整数和浮点数的情况下,+运算符被称为附加运算符。
例1
"John" + "Doe"
=> "JohnDoe"
连接运算符将把第一个字符串追加到下一个字符串中。你会发现新的字符串不包含空格。
例2
如果你想添加一个空格,你可以手动添加为。
"John" + " " + "Doe"
=> "John Doe"
例3
在大多数情况下,你需要将字符串与变量连接起来。要做到这一点,你可以传递变量的名称,如:
first_name = "John"
full_name = first_name + " Doe"
=> "John Doe"
例4
字符串连接可以创建一个新的字符串,你可以把它保存在一个变量中,以便以后使用。
比如说
full_name = "John" + " Doe"
puts full_name
例5
如果你试图将一个字符串加到一个数字上,你会得到一个错误。
例如
puts "Age: " + 10
`+': no implicit conversion of Integer into String (TypeError)
上面的错误表明,Ruby只能将一个字符串连接到另一个字符串。因此,将一个字符串连接到一个整数是不允许的。
为了解决这个问题,我们可以使用to_s方法。它将传递的值转换为一个字符串。
比如说
puts "Age: " + 10.to_s
=> Age: 10
方法2:#concat
Ruby有一个内置的方法来连接字符串。concat方法将接收两个字符串并返回一个新的字符串。
例子1
考虑一下下面的例子程序。
first_name = "John"
last_name = "Doe"
puts first_name.concat(" ", last_name)
concat方法将对传递的字符串进行合并。
例2
你也可以使用<<方法,它是concat方法的一个别名。
first_name = "John"
last_name = "Doe"
puts first_name << " " << last_name
字符串插值
如果你想把一个变量串联成一个字符串,你必须把这个变量转换成一个字符串。
这样做会导致可读性问题和错误。
为了解决这个问题,我们可以使用字符串插值来将变量注入到一个字符串中。
在Ruby中,我们使用# {}符号来将一个变量注入到一个字符串中。
例子1
下面的例子将把年龄变量注入到字符串中。
name = "John Doe"
age = 10
puts "Name: #{name} \nAge: #{age}"
输出
Name: John Doe
Age: 10
使用字符串插值,Ruby将把数值转换成字符串,而不是手动调用变量的to_s方法。
总结
本指南已经说明了如何在Ruby中使用字符串。你还学习了各种方法来组合字符串和将变量注入字符串而不使用to_s方法。