我正在尝试获取字符串的前半部分。如果字符串长度是奇数,则向上舍入。我有点被困在得到一半的字符串。
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
答案 0 :(得分:2)
致电str[start, length]
时,您需要使用0
,而不是1
作为起点。对于长度,你应该只能将长度除以2,所以你的方法体只需要string[0, (string.length.to_f / 2).ceil]
答案 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"