Ruby - 字符串到数组的转换

时间:2018-01-11 10:48:04

标签: arrays ruby string

我有一个像"[12,34,35,231]"这样的字符串。字符串在开头和结尾都包含方括号。

我想将此strind转换为数组'12','34','35','231'以使用条件如:

if array.is_a? Array
...
else
...
end

我无法理解如何以正确的方式做到这一点?

4 个答案:

答案 0 :(得分:3)

它不是转换,而是解析。

输入字符串看起来像JSON。如果是JSON,那么使用JSON Ruby模块对其进行解码:

require 'json'
arr = JSON.parse("[12,34,35,231]")

arr是一组数字:

p arr
# [12, 34, 35, 231]

如果您需要将值作为字符串,则可以使用方法to_s将它们转换为字符串:

arr = arr.map(&:to_s)
p arr
# ["12", "34", "35", "231"]

答案 1 :(得分:1)

您可以使用json将其转换为数组。

class T
  require 'json'
  def array_detect(array_string)
    begin
      json = JSON.parse array_string
      if json.is_a? Array
        # is an array
      else
        # not an array
      end
    rescue JSON::ParserError => e
      puts e.message
      # not a valid json string
    end
  end
end

答案 2 :(得分:1)

"[12,34,35,231]"[1...-1].split(',')

答案 3 :(得分:1)

DataframeFinal.merge(Dataframe1, on="ProductID")