2016-03-05 94 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可能是最主要的一個,但是如果你搜索(這種東西的標準項目),你會發現類似的東西。