为什么我无法从文本文件中的字符串中删除重复项?

jch*_*241 0 ruby duplicates uniq

我正在尝试从文本文件中的每一行中删除重复的数字。由于某种原因,它不会删除重复的数字 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
Run Code Online (Sandbox Code Playgroud)

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

1,1,1,2,2,3,3,4,4
2,3,4,5,5
Run Code Online (Sandbox Code Playgroud)

我的输出:

1,2,3,4,4
2,3,4,5
Run Code Online (Sandbox Code Playgroud)

Cha*_*ell 5

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

试试这个看看是否有效:

def remove_dup(str)
    str.chomp.split(",").uniq.join(",")
end
Run Code Online (Sandbox Code Playgroud)

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