【发布时间】:2018-05-15 18:33:35
【问题描述】:
我在分配 Ruby 时遇到困难(我们刚刚开始看到它)。我想我已经接近答案了,但是我存储字符串元素的方式有些不对劲。
所以分配是有一个方法HID_Num(String) 接受一个字符串。
要成为有效的字符串,它需要:4 个大写字母,后跟 8 位数字(例如:"ABCD18347692")。该方法应将单个数字作为整数值返回,如果没有单个有效卡号,则返回 nil被发现。
例如:HID_num ("ADBC12345678 abcD12345678") 应该返回 12345678
到目前为止我的代码:
def HID_num(str)
str.gsub(/\s+/m, ' ').strip.split(" ")
str.each { |element|
if(element.count == 12)
count = str.count("A-Z")
if(count == 4)
count2 = str.count("1-9")
if(count == 8)
puts str[3...11]
else{
puts "nil"
} }
end end
有什么问题:不存储str.gsub的元素。
我正在考虑使用指针,但不确定如何使用它们或将每个元素存储在数组中,但我不知道如何......也许我想太多像 Java 编码?
谢谢!
【问题讨论】:
-
使用的语言在您问题的标签中。尝试保留标题以进行解释,而不是标记。这里的代码也有点残骸,我不确定你的缩进发生了什么。请记住,Ruby 不会将
{ ... }用于if或else之类的东西。 -
提供的代码首先不会通过 ruby 解析器。请发布您运行的真实代码以解决
gsub的问题不会修改值(也存在。)NB我在一定程度上修复了缩进。 -
如果 HID_num 包含多个匹配项怎么办?
标签: arrays ruby string loops element