Ruby 删除方法(字符串操作)

标签 ruby string delete-method

我是 Ruby 新手,并且一直在阅读 Neighborly 先生的 Humble Little Ruby 指南。在此过程中,代码示例中出现了一些拼写错误,但我一直设法找出问题所在并随后修复它 - 直到现在!

这真的很基本,但我无法让以下示例在 Mac OS X (Snow Leopard) 上运行:

gone = "Got gone fool!"
puts "Original: " + gone
gone.delete!("o", "r-v")
puts "deleted: " + gone

我期望的输出是:

Original: Got gone fool!
deleted: G gne fl!

我实际得到的输出是:

Original: Got gone fool!
deleted: Got gone fool!

删除!方法似乎没有任何效果。

谁能解释这里出了什么问题? :-\

最佳答案

String.delete 方法 (Documented here) 将其参数视为数组,然后根据其数组的 交集 删除字符。

两个数组的交集是两个数组共有的所有字符。因此,您对 gone.delete!("o", "r-v") 的原始删除将变为

gone.delete ['o'] & ['r','s','t','u','v']

两个数组中都没有字符,因此删除会得到一个空数组,因此不会删除任何字符。

关于Ruby 删除方法(字符串操作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2707469/

相关文章:

Ruby 服务器在本地主机(teambox)之外非常慢

node.js - 无法使用 ReactJs MongoDB NodeJS 删除项目

ruby-on-rails - Rails 删除方法不起作用

javascript - 使用javascript删除内爆变量的值

python - 如何通过有效地连接字符来构造字符串?

java - 如何在Java中将一串含有不同数量空格的数字转换为一系列Int变量。

ruby-on-rails - 为什么使用 HTTP PUT 和 DELETE 方法而不是 POST?

ruby-on-rails - 在 Windows 上使用 Ruby 进行开发

ruby - 了解 ruby​​ 中的 'next' - 比较解决方案

ruby - 在 net/http 中使用 [] 访问 header 值