1

我是一名初学者,正在开发一个简单的 Ruby 程序,以从文本文件中生成词汇表。西班牙语允许单词在大写的第一个字母上带有重音符号(例如“Ábaco”),但我希望我列表中的所有单词都被小写。现在,如果我尝试"Á".downcase控制台返回“Á”。

有没有办法在 ruby​​ 中使用大写和小写以及西班牙语 (áéíóúñ) 中的重音字符?

这是我的程序目前的样子:

f = File.open(".../cat.txt")
words = f.read.split.map(&:downcase)
f.close
words = words.map {|item| item.gsub(/[,.?!-"'"]/, '')}
words = words.uniq.sort

File.open(".../catwords.txt", "w+") do |f|
  words.each { |element| f.puts(element) }
end
4

2 回答 2

1

看看这个示例代码

our_string.tr('Á', 'á')

根据文档:

(来自红宝石网站) --------------------------------------------- --------------------------------- str.tr(from_str, to_str) => new_str


返回 str 的副本,其中 from_str 中的字符被 to_str 中的相应字符替换。如果 to_str 比 from_str 短,则用最后一个字符填充它以保持对应关系。

"hello".tr('el', 'ip') #=> "hippo"

```

于 2016-03-05T04:35:10.030 回答
1

您需要一个库来理解特定于语言的规则,例如排序和转换。https://github.com/jchris/icu4r可能是主要的,但是如果你四处搜索,你会发现类似ICU的东西(这类东西的标准项目)。

于 2016-03-05T04:40:20.063 回答