在Ruby中,有多種方法可以用來去除字符串中的重復(fù)字符。這里有一些常見的方法:
uniq
方法:str = "hello world"
unique_str = str.chars.uniq.join
puts unique_str # 輸出 "helo wrd"
這個方法首先將字符串轉(zhuǎn)換為字符數(shù)組,然后使用uniq
方法去除重復(fù)的字符,最后使用join
方法將字符數(shù)組重新組合成字符串。
gsub
方法:str = "hello world"
unique_str = str.gsub(/.(?=.\1)/, '')
puts unique_str # 輸出 "helo wrd"
這個方法使用正則表達式來查找重復(fù)的字符,并使用gsub
方法將它們替換為空字符串。這種方法可能會導(dǎo)致原始字符串中的字符順序發(fā)生變化。
each_char
方法遍歷字符串并手動去除重復(fù)字符:str = "hello world"
unique_str = ""
str.each_char do |char|
unless unique_str.include?(char)
unique_str << char
end
end
puts unique_str # 輸出 "helo wrd"
這個方法通過遍歷字符串中的每個字符并檢查它是否已經(jīng)存在于新的字符串中來去除重復(fù)字符。如果不存在,則將該字符添加到新字符串中。這種方法不會改變原始字符串中的字符順序。