附加到现有字符串

时间:2010-03-01 15:37:27

标签: ruby

要附加到现有字符串,这就是我正在做的事情。

s = 'hello'
s.gsub!(/$/, ' world');

是否有更好的方法可以附加到现有字符串。

在有人建议以下答案之前,lemp显示这个不起作用

s = 'hello'
s.object_id
s = s + ' world'
s.object_id 

在上述情况下,object_id对于两种情况会有所不同。

5 个答案:

答案 0 :(得分:158)

您可以使用<<就地附加到字符串。

s = "foo"
old_id = s.object_id
s << "bar"
s                      #=> "foobar"
s.object_id == old_id  #=> true

答案 1 :(得分:51)

您还可以使用以下内容:

s.concat("world")

答案 2 :(得分:4)

我可以问为什么这很重要吗?

我知道这不是您问题的直接答案,但是您尝试保留字符串的对象ID这一事实可能表明您应该再次查看您要执行的操作。

例如,您可能会发现依赖字符串的对象ID会导致很难跟踪的错误。

答案 3 :(得分:1)

还有另一种方式:

s.insert(-1, ' world')

答案 4 :(得分:0)

这是另一种方式:

fist_segment = "hello,"
second_segment = "world."
complete_string = "#{first_segment} #{second_segment}