分割函数后如何将数组转换为字符串

时间:2019-01-02 01:35:17

标签: ruby

我正在尝试将.split()函数的返回值转换为字符串。

有一个字符串正在从文本文件中解析,我需要将其从数组更改为字符串。

调用split函数后,结果是一个数组,但是,我需要将其作为字符串来执行字符操作和函数。

example = "--NAME: John Doe"
print example
value = example.split("--NAME: ")
print value.class
value.to_s.strip
print value
print value.class

6 个答案:

答案 0 :(得分:1)

您可以使用'join'将数组转换为字符串。

在您的示例中,我使用'join'来获取用逗号分隔的字符串,并使用'reject'来删除空字符串(如果有)。

example = "--NAME: John Doe"
value = example.split("--NAME: ")
puts value
  

[“”,“ John Doe”]

puts value.reject(&:blank?).join(",")
  

“约翰·多伊”

答案 1 :(得分:1)

(?<=--NAME:)正向隐式断言:确保前面的字符与--NAME:匹配,但在匹配的文本中不包含这些字符

Strip!删除适当的前导或尾随空格。

irb(main):018:0>"--NAME: John Doe"[/(?<=--NAME:).*$/].strip!

逐步:

irb(main):026:0> exampel = "--NAME: John Doe"
=> "--NAME: John Doe"
irb(main):027:0> example = exampel[/(?<=--NAME:).*$/].strip!
=> "John Doe"
irb(main):028:0> example
=> "John Doe"
irb(main):029:0> 

答案 2 :(得分:0)

也许split()不是您所需的正确工具吗?

如果仅想删除提示,则可以尝试gsub()https://ruby-doc.org/core-2.4.1/String.html#method-i-gsub)。 gsub()代表“全局替换”,在其他语言中通常称为replace()

example.gsub("--NAME: ", "")

将使用空字符串替换提示并给您:

  

“约翰·多伊”

(一个字符串)

答案 3 :(得分:0)

只需将您的字符串作为子字符串:

example = "--NAME: John Doe"

example[8..-1]

#=> "John Doe"

虽然8指示开始位置,而-1指示子字符串应以example字符串的最后一个字符结束,因为NAME的长度是变量。

答案 4 :(得分:0)

如果您每次都以相同的格式获取example字符串,

example.split(' ', 2).last

答案 5 :(得分:0)

> value = example.split("--NAME: ")
#=> ["", "John Doe"]
> value.join.strip
#=> "John Doe"