如何在不使用Ruby进行评估的情况下将数学表达式转换为字符串?

时间:2015-08-07 22:27:37

标签: ruby string csv

我有一个带有电话号码的CSV可以清理。我有一个将字符串"123-546-7658"转换为"1235467658"的方法。

我的数据以整数形式出现。我尝试了to_s,但它在转换为字符串之前评估了数学运算符。

如何在ruby中将123-456-7890变成"1234567890"

我的clean_phone_numbers()看起来像这样:

def clean_phone_numbers(phone_number)
    phone_number = phone_number.gsub(/\D/,'')

    if phone_number.length == 10
        clean_num = phone_number
    elsif phone_number.length == 11
        clean_num = phone_number[1..10]
    else
        clean_num = "an invalid number"
    end

    return clean_num
end

我读了像

这样的文件
contents = CSV.open 'event_attendees.csv', headers: true, header_converters: :symbol

contents.each do |row|
    phone_number = clean_phone_numbers(row[:homephone])
编辑:我明白了。我的实际问题是我正在阅读家庭电话专栏错误。在[:homephone]

之前我没有排

1 个答案:

答案 0 :(得分:-1)

当您获得电话号码时,请将.to_s添加到其中以使其成为字符串。

json = 123-456-7890
json.to_s.gsub("-", "")

这应该可以解决你的问题。