要从字符串中获取最后n个字符,我假设您可以使用

ending = string[-n..-1]

但如果字符串长度小于n个字母,则得到nil个.

有哪些解决办法?

Background:字符串是普通的ASCII,我可以访问ruby 1.9.1,我使用的是普通的旧ruby对象(没有web框架).

推荐答案

这里有一个单行线,你可以输入一个大于字符串大小的数字:

"123".split(//).last(5).to_s

对于ruby 1.9+

"123".split(//).last(5).join("").to_s

对于ruby 2.0+,join返回一个字符串

"123".split(//).last(5).join

Ruby相关问答推荐

在 Ruby 中使用委托维护相同的类

这是 ruby​​ Regexp 中的错误吗?如何在不使用超时的情况下防止正则表达式匹配中的“无限循环”?

在 MacOS Sierra 上使用 RMagick 2.16 的 ImageMagick 7 找不到 MagickWand.h

RSpec 是否有 python 类似功能来做 TDD?

define_method:如何动态创建带参数的方法

为什么安全导航比在 Rails 中使用 try 更好?

如何从 Ruby HEREDOC 中删除前导空格字符?

jekyll 调试或打印所有变量

如何编写启动 tmux 会话的 shell 脚本,然后运行 ​​ruby​​ 脚本

在现有 Jekyll 安装中切换主题

使用 bundler 安装较新版本的 bundler

创建一个哈希值作为数组和默认值作为空数组

Vagrant - 如何拥有特定于主机平台的配置步骤

如何在 Ubuntu 14.04 上安装 Ruby 2.1.4

Ruby:获取不带扩展名的文件名

退出(exit)和中止(abort)有什么区别?

`Range#include?` 和 `Range#cover?` 有什么区别?

如何在 Rails 3 迁移中描述枚举列?

加载 RubyGems 插件时出错,openssl.bundle (LoadError)

如何仅从 Gemfile 中查看依赖关系树?