【问题标题】:Default alphabetical sort names of files文件的默认字母排序名称
【发布时间】:2014-09-20 20:50:35
【问题描述】:

我一直在尝试一些 Dir 类并遇到了一些奇怪的事情。正如我在 ruby​​-doc 中读到的,字符串数组将按字母顺序排序。但是在打印名称时,顺序与字母顺序有点不同。代码如下:

array = []
Dir.foreach(Dir.pwd){|f| array.push(f)}
puts array.sort!

结果:

File_class_test.rb
File_reading_test.rb
File_reading_test.rb~
Rule_them.txt
Shoes_test.rb
Summarize.rb
Text_analyzer.rb
file_rename.rb
file_rename.rb~
path.rb
path.rb~
test.txt

我还检查了 f 元素的类,它显示了字符串。 所以我的问题是——我是在代码中排序/不正确做错了什么,还是只是不知道什么?

提前谢谢各位。

【问题讨论】:

    标签: ruby file directory dir


    【解决方案1】:

    结果是预期的并且区分大小写。如果您不关心这些文件名的大小写,只需执行以下操作:

    Dir.foreach(Dir.pwd){|f| array.push(f.upcase)} # or downcase
    

    【讨论】:

    • 或者使用自定义排序:array.sort {|l,r| l.downcase <=> r.downcase}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多