2016-03-05 107 views
1

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

有没有办法使用upcase &红宝石与重音字符在西班牙语(áéíóññ)?

这就是我的计划目前看起来像:

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 

回答

1

看一看此示例代码

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

按照文档:

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


返回STR的与由所述to_str对应 字符替换在from_str均被字符的副本。如果to_str短于from_str的 ,则会填充其最后一个字符以便保持 的对应关系。

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

```

1

你会需要一个了解的东西特定语言的规律,即订购和改造的图书馆。 https://github.com/jchris/icu4r可能是最主要的一个,但是如果你搜索(这种东西的标准项目),你会发现类似的东西。

相关问题