我正在try 生成一些Ruby代码,它将获取一个字符串并返回一个新的字符串,从其末尾删除一个数字x个字符,这些字符可以是实际的字母、数字、空格等.

例:给定以下字符串

a_string = "a1wer4zx"

我需要一个简单的方法来获得相同的字符串,比如说,减go 最后3个字符.在上面的例子中,这将是"aWer".我现在做这件事的方式似乎很复杂:

an_array = a_string.split(//,(a_string.length-2))
an_array.pop
new_string = an_array.join

有什么 idea 吗?

推荐答案

这个怎么样?

s[0, s.length - 3]

还是这个

s[0..-4]

edit

s = "abcdefghi"
puts s[0, s.length - 3]  # => abcdef
puts s[0..-4]            # => abcdef

Ruby相关问答推荐

Ruby 中的 Float#floor 和 Float#to_i 有什么区别?

Ruby:如何在 vanilla ruby​​ 中使用有效支持日期?

Homebrew 的 ruby​​ 和Homebrew Ruby有什么区别?

用函数组合枚举器的Ruby方法

为什么数组中的 splat 如此昂贵?

Jekyll 默认安装没有 _layouts 目录

Ruby 中的yield关键字有什么作用?

如何在新行之间拆分字符串并保留空白行?

如何使用 if..else 块的结果分配变量?

Ruby 中的 Fail vs. raise:我们真的应该相信风格指南吗?

卸载所有 gem Ruby 2.0.0

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

如何在 ruby​​ 中解压缩 Gzip 字符串?

Ruby 1.9:如何正确大写和小写多字节字符串?

Ruby 中的 %w{} 和 %W{} 大写和小写百分比 W 数组文字有什么区别?

判断散列的键是否包含所有键集

Ruby 中的Monkey Patching到底是什么意思?

何时在 Ruby 中使用 Struct 而不是 Hash?

Ruby:如何在不指向同一个对象的情况下复制变量?

查找两个数组的共同点