Ruby:如何检索字符串的一部分?

12

我希望有一种方法可以只显示字符串/文本值中指定数量的字符。

如果my_string.length > 40,则只从my_string获取前40个字符。

5个回答

22

只需对您的字符串进行子字符串截取:

mystring[0...40]

2
这将返回41个字符。 - Andrew Haines
7
不,我正在使用独占范围运算符:...而不是包含端点的范围运算符:.. - J-_-L

4

您可以这样做:

my_string[0..39]

1

Ruby 允许你对字符串进行切片:

my_string = my_string[0, 40] if (my_string.length > 40)

如Andy H提醒我,这可以简化为:
my_string = my_string[0, 40]

这里有一个例子:

str = '1234567890' * 5 #=> "12345678901234567890123456789012345678901234567890"
str[0, 40] #=> "1234567890123456789012345678901234567890"

你不需要 if,对吧?如果字符串长度小于40个字符,它将返回整个字符串。 - Andrew Haines
没错。我只是按照楼主的问题逻辑进行操作,忘记了那一部分。 - the Tin Man

1
my_string.slice!(40..-1)

您可以查看有关切片的描述!在这里


1
这是一个比较难理解的逻辑。在生产环境中,我会担心它成为维护问题。 - the Tin Man

1

如果您已经在使用activesupport gem(或者您不介意将其添加为依赖项),那么您也可以使用String#truncate。如果您的字符串长度超过了设置的限制,您将会看到"Your string..."


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接