Tag:

Ruby相当于PHP的ucfirst()函数

Ruby中最好的方法是什么(使用Rails,如果相关的话)来大写字符串的第一个字母? 注意String#capitalize不是我想要的,因为除了大写字符串的第一个字母之外,这个函数还使所有其他字符小写(我不想要它 – 我想保持它们不受影响): >> “a A”.capitalize => “A a”

如何订购字母列表(“a”,“b”,“c”,…,“z”,“aa”,“ab”)? 字符串#sunk和在这种情况下似乎不能很好地协同工作

我的一个对象(’item’)有一个ID(’letter_id’),格式为“a”,“b”,…,“aa”,“ab”等。为了生成它,我使用ruby的String#succ在这样的实例方法中: def set_letter_id last = parent.items.all(:order => “letter_id ASC”).last if last.nil? self.letter_id = ‘a’ else self.letter_id = last.letter_id.succ end end 现在这很有效,直到第28封信。 第27个将正确生成“ aa ”,但是last的值将始终返回带有’ z ‘的letter_id的项,因为返回项的排序不遵循与String#succ相同的规则。 我从这里的评论中发现了这一点 – 但现在我很难找到解决这个问题的好方法。 问题基本上是这样的: “aa”.succ #=> “ab” – great, that’s what I want. “z””aa” #=> 1 – not so great, “z” should actually be less than “aa” 显然,这不一定是一个bug,但它使得以这种格式排序和排序letter_ids列表非常困难。 有没有人遇到这个并找到了解决方法,或者我可能会尝试的任何建议? […]

使用String#split方法

默认情况下, #split方法的工作方式如下: “id,name,title(first_name,last_name)”.split(“,”) 会给你以下输出: [“id”, “name”, “title(first_name”, “last_name)”] 但我想要以下内容: [“id”, “name”, “title(first_name,last_name)”] 所以,我使用以下正则表达式(来自这个答案 )使用split来获得所需的输出: “id,name,title(first_name,last_name)”.split(/,(?![^(]*\))/) 但是,当我使用另一个字符串时,这是我上面的实际输入,逻辑失败了。 我的实际字符串是: “id,name,title(first_name,last_name,address(street,pincode(id,code)))” 它提供以下输出: [“id”, “name”, “title(first_name”, “last_name”, “address(street”, “pincode(id,code)))”] 而不是 [“id”, “name”, “title(first_name,last_name,address(street,pincode(id,code)))”]

Rails:为什么在rake任务中调用to_a字符串无效?

我正在尝试为数据库迁移解密一堆密码。 我有一些旧的Rails代码(实际上是一个Runner脚本),可以很好地解密它们。 但是将相同的代码放入Rake任务会导致任务失败,并且…未定义的方法`to_a’代表“secretkey”:String … 为什么在Rake任务中调用字符串上的to_a无效,但在Runner脚本中完全有效? require ‘openssl’ KEY = ‘secretkey’ namespace :import do task :users => :environment do def decrypt_password(pw) cipher = OpenSSL::Cipher::Cipher.new(‘bf-ecb’) cipher.decrypt cipher.key = KEY.to_a.pack(‘H*’) <<——— FAILS RIGHT HERE on to_a data = data.to_a.pack('H*') data = cipher.update(data) data << cipher.final unpad(data) end end … other methods end (Rails 3.0.0,Ruby 1.9.2)

如何重复字符串中单词的第一个字符?

使用Ruby 2.4。 我有一个字母和空格的字符串。 例如, “abc def” 如何更改字符串以便复制每个单词的第一个字符? 也就是说,上面会变成: “aabc ddef” 因为“a”和“d”是上述字符串中单词的开头。 用词来说,我指的是用空格分隔的任何字符序列。

Ruby中的奇怪字符串行为

所以我在Ruby中玩,并注意到”a””b”返回”ab” 。 如果喜欢这种非常奇怪和无用的东西,那么我想知道这叫什么,如果它有目的。 我很感激任何答案。 谢谢!

匹配子字符串模式后替换URL中的数字

我需要在URL中的某个子字符串模式之后插入一个字符串,并替换之前的任何数字。 /ei/sort.do?layoutCollection=0&layoutCollectionProperty=&layoutCollectionState=0&pagerPage=1 我需要检测layoutCollectionState=并用我需要的任何数字替换任何数字,这里是“0”。 我读到了String的index和insert方法,但是他们并没有完全完成我需要他们做的工作。

使用字符串作为函数名称

我必须创建一个generics函数,用于调用许多其他函数,具体取决于我获得的访问。 对于Ex: def func1 @access = [‘public’,’private’,’protected’] for acc in @access @temp = “get_”+acc[1]+”_data” end end def get_public_data end def get_private_data end def get_protected_data end 但是@temp将它作为字符串并将其分配给它。 请尽快帮助。 谢谢

如何获取用|分隔的字符串 要么 ,

假设我有一个字符串,如| b | c | d …或者像a,b,c,d ……我想提取abc和d并将其推入数组中。 这样做的有效方法是什么? 因此,输入是a|b|c|d或a,b,c,d ,输出应为[a,b,c,d] 。

如何检测此线的存在?

这个问题与我刚才在这里提到的前一个问题有关,所以如果大部分语言看起来相似的话,请原谅我。 我有一个有多行的字符串。 我正在做的是检查每一行的具体特征,然后相应地对待它们。 一个特征是如果该行以+或a开头。 这很好用。 另一个特点是,如果它只包含一个\n ,并且Ilya帮我弄清楚如何检测这些线,这样做很好。 我试图检测的最后一种字符串是那些与上​​述任何条件都不匹配的字符串,但是以一个以-或+开头的行之后出现。 脱离上下文,这是我想要找到的有效字符串的示例: ” end\n”, 但是,这是一个在以+或-开头的行之后的更完整的示例。 “+ Reflection.add_reflection self, name, reflection\n”, ” end\n”, ” \n”, “- habtm_reflection = ActiveRecord::Reflection::HasAndBelongsToManyReflection.new(name, scope, options, self)\n”, 在这个特定的例子中,我试图找出第二行。 这是一个实例,其中与纯字符串匹配参数匹配的字符串将被取消资格,因为它们来自以-或a +开头的字符串。 ” #\n”, ” # All of the association macros can be specialized through options. This makes cases\n”, ” # more complex than the simple […]