[英]Trying to remove spaces from a string RUBY
如標題所示,我正在嘗試編寫一個刪除空格的函數。 這是我到目前為止的位置,但是似乎我缺少了一些東西。
def remove(x)
if x.include? " "
x.gsub!(/ /,"")
end
end
我認為您可能正在檢查函數的輸出,對嗎?
你有類似的東西
remove('1q')
=> nil
這是因為如果找不到空間,則remove
方法不會返回任何內容。 只要確保您返回修改后的值即可。
def remove(x)
if x.include? " "
x.gsub!(/ /,"")
end
x # this is the last executed command and so will be the return value of the method
end
現在你會看到
remove('1q')
=> "1q"
請注意,您的方法實際上是對對象進行了突變,因此您實際上不需要測試返回的內容,只需檢查具有原始值的變量即可。 做...
test_value = 'My carrot'
remove(test_value)
p test_value
=> "Mycarrot"
最后,正如已經指出的那樣,您不需要將其gsub!
在if
子句gsub!
將僅在找到的任何空間上工作,否則將不執行任何操作。
def remove(x)
x.gsub!(' ', '')
x
end
注意,您仍然需要像gsub!
一樣返回x
變量gsub!
什么都不做,返回nil
gsub
方法(另一方面)不會發生變化,它將始終返回一個新值,該值將是進行了任何替換的字符串,因此您可以執行
def remove(x)
x.gsub(' ','')
end
而且,無論是否發生替換,這將始終返回一個值...但是原始對象將保持不變。 (返回的值將具有不同的object_id
)
更簡單,您可以執行以下操作:
def remove_blank_spaces(str)
str.delete(' ')
end
其他選擇:
def remove_blank_spaces(str)
str.gsub(' ', '')
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.