如何删除已解析的字符串(红宝石)中的空格? (删除无效)

时间:2018-08-01 14:57:16

标签: ruby-on-rails ruby string integer removing-whitespace

我不明白为什么,但是我的字符串空白不想删除。 它来自Google表格解析的数组。 感兴趣的是将其转换为整数以便随后对其进行处理。

我的代码返回“ 2 217 500€”。 然后,我使用方法.delete(“” +“€”)并返回“ 2 217 500”。 如果我尝试将其转换为整数(使用.to_i),则返回2。 我还尝试了.gsub和.split方法,它也无法正常工作。

有人知道为什么它不起作用,或者有其他方法吗?

这是我的代码:

spreadsheet_id = '18YgC24_HRA6cddc71vynatoMwUQpToQHtGE_p1vc2Xk'
    range = 'League_billing_total!A2:B'

    response4 = service.get_spreadsheet_values(spreadsheet_id, range).to_json
    puts response4
    # {"majorDimension":"ROWS","range":"League_billing_total!A2:B1000","values":[["Total 2018","1 575 764 €"],["Budget","2 217 500 €"]]}

    parse_response4 = JSON.parse(response4) 
    puts parse_response4
    # {"majorDimension"=>"ROWS", "range"=>"League_billing_total!A2:B1000", "values"=>[["Total 2018", "1 575 764 €"], ["Budget", "2 217 500 €"]]}

    flatte = parse_response4['values']
    puts flatte # [["Total 2018", "1 575 764 €"], ["Budget", "2 217 500 €"]]

    @starters_total = flatte.flatten!

    puts @starters_total        # ["Total 2018", "1 575 764 €", "Budget","2 217 500 €"]
    puts @starters_total[3] # "2 217 500 €"

    @budget_2018_new_deals = @starters_total[3].delete(" "+"€") 
    puts @budget_2018_new_deals # "2 217 500"
    puts @budget_2018_new_deals.to_i # 2

2 个答案:

答案 0 :(得分:3)

我只是从字符串中删除不是数字的所有内容:

"2 217 500 €".gsub(/\D/, '')
#=> "2217500"

答案 1 :(得分:0)

如果只想删除开头和结尾的空格(如PHP的修剪),则可以使用.strip,但是如果要删除所有的空格,则可以使用.gsub(/\s+/, "")