('a'..'z')和其他范围方法文字非常方便。
是否有等效或某种其他范围方法来显示除英语之外的字母? ( exemptigratia 德语字母(变音字符),土耳其语字母)
更新
我的用例是:
我正在从字母表中生成随机字符串。所以我需要字母表中的所有字符,然后随机化并以指定的长度重新加入它们。在英语中,我可以这样做:('a'..'z').to_a.shuffle[0, length].join.capitalize
。我也想为其他字母表做同样的事情。
答案 0 :(得分:4)
这不会那样。事实上,没有确定的特征,比如说“o omlaut”。看:
▶ 'ö'.codepoints
#⇒ [
# [0] 246
# ]
▶ 'ö'.codepoints
#⇒ [
# [0] 111,
# [1] 776
# ]
很酷,对吧?原因是前者是来自ISO-8859-1
而后者是“o”+ combining diacritics的角色。我建议使用绑定到icu library,或尝试手动处理所有内容(导致错误和不受支持的代码库。)
UPD 正如@NeilSlater在他的评论中指出的那样,一旦没有,比如说,尽可能结合变音符号,人们可能会写道:
[*('a'..'z'), 'ö', 'ä', 'ü']