在ruby中获取字符串的前半部分

时间:2016-11-13 13:53:28

标签: ruby string

我正在尝试获取字符串的前半部分。如果字符串长度是奇数,则向上舍入。我有点被困在得到一半的字符串。

def get_first_half_of_string(string)
  if string.size % 2 == 0
    string[1,4]
  else
    string[1,5]
  end
end

puts get_first_half_of_string("brilliant")

这会返回rilli

4 个答案:

答案 0 :(得分:2)

致电str[start, length]时,您需要使用0,而不是1作为起点。对于长度,你应该只能将长度除以2,所以你的方法体只需要string[0, (string.length.to_f / 2).ceil]

https://ruby-doc.org/core-2.2.0/String.html#method-i-5B-5D

答案 1 :(得分:1)

如果它是奇数,也许你可以将字符串大小分成两半并向上舍入:

half = (string.size/2.to_f).ceil
string[0,half]

答案 2 :(得分:1)

我会做这样的事情:

def first_half_of_string(string)
 index = (string.size.to_f / 2).ceil
 string[0, index]
end

first_half_of_string("brilliant")
#=> "brill"

答案 3 :(得分:0)

根据之前的答案,您可以打开String课程:

class String
  def first_half
    self[0,(self.size/2.to_f).ceil]
  end
end

所以你可以这样做:

"ruby".first_half
=> "ru"
"hello".first_half
=> "hel"