0

我正在尝试从文本文件的每一行中删除重复的数字。出于某种原因,它不会删除重复的数字 4。如果我在 4 之后附加一个额外的数字,它工作正常并且重复的 4 被删除。

def remove_dup(str)
  str.split(",").uniq.join(",")
end

File.open('pad.txt','r').each do |line|
  puts remove_dup(line)
end

我的输入“pad.txt”文件:

1,1,1,2,2,3,3,4,4
2,3,4,5,5

我的输出:

1,2,3,4,4
2,3,4,5
4

1 回答 1

4

也许因为您是从文本文件中获取字符串,所以\n在字符串的末尾有一个。因此,最后一个4实际上是4\n

试试这个看看它是否有效:

def remove_dup(str)
    str.chomp.split(",").uniq.join(",")
end

chomp方法将从字符串末尾删除回车符。

于 2013-09-26T22:01:15.863 回答