要从字符串中获取最后一个n
字符,我假设您可以使用
ending = string[-n..-1]
但是,如果字符串长度小于n
个字母,则会得到nil
。
有哪些可用的解决方法?
Background:字符串是纯ASCII码,我可以访问Ruby1.9.1,并且我使用的是plain Old ruby对象(没有web框架)。
发布于 2011-03-07 12:36:22
这里你有一个一行,你可以放一个大于字符串大小的数字:
"123".split(//).last(5).to_s
对于ruby 1.9+
"123".split(//).last(5).join("").to_s
对于拼音2.0+,join返回一个字符串
"123".split(//).last(5).join
发布于 2010-02-01 13:17:37
嗯,我能想到的最简单的解决方法是:
ending = str[-n..-1] || str
(编辑:or
运算符的优先级低于赋值,因此请确保使用||
。)
发布于 2014-12-19 20:20:15
在纯Ruby (没有Rails)中,您可以这样做
string.chars.last(n).join
例如:
2.4.1 :009 > a = 'abcdefghij'
=> "abcdefghij"
2.4.1 :010 > a.chars.last(5).join
=> "fghij"
2.4.1 :011 > a.chars.last(100).join
=> "abcdefghij"
如果您使用的是Ruby on Rails,则可以在string对象上调用first
和last
方法。这些方法是首选的,因为它们简洁直观。
例如:
[1] pry(main)> a = 'abcdefg'
=> "abcdefg"
[2] pry(main)> a.first(3)
=> "abc"
[3] pry(main)> a.last(4)
=> "defg"
https://stackoverflow.com/questions/2174767
复制相似问题