用于重音字符的大写和小写

时间:2016-03-05 03:48:45

标签: ruby special-characters upcase

我是一名初学者,正在开发一个简单的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

2 个答案:

答案 0 :(得分: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"

     

```

答案 1 :(得分:1)

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