我是一个初学者,正在开发一个简单的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
看看这个示例代码
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"
''
您需要一个了解特定于语言的规则的库,例如排序和转换。 https://github.com/jchris/icu4r 可能是主要的,但如果你四处搜索ICU
(这类东西的标准项目),你会发现类似的东西。