我正在尝试将.split()
函数的返回值转换为字符串。
有一个字符串正在从文本文件中解析,我需要将其从数组更改为字符串。
调用split函数后,结果是一个数组,但是,我需要将其作为字符串来执行字符操作和函数。
example = "--NAME: John Doe"
print example
value = example.split("--NAME: ")
print value.class
value.to_s.strip
print value
print value.class
答案 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"