是否有人知道如何正确地将人名大写的一些代码/规则?
(这些可能不正确,只是一些样本名称以及大写可以如何/工作)
这似乎是一场失败的战斗......
如果有人有关于何时以及如何将名称大写的一些代码或规则,请告诉我:)
干杯, 阿尔伯特
答案 0 :(得分:19)
在我看来,处理它的唯一合理方法是让用户告诉你他们的名字应该如何大写。任何自动计划都会惹恼某人。
答案 1 :(得分:7)
告诉他们你是老学校。这使得它变得简单并且100%正确:
- JOHN SMITH
- JOHAN VAN RENSBURG
- DERRICK VON GOGH
- RUBY DE LA FUENTE
- PETER MACLAURIN
- GARRY MCDONALD
同样的逻辑也有助于解决许多问题。
答案 2 :(得分:6)
维基百科似乎对此有了不错的报道:
答案 3 :(得分:3)
我不确定Ruby是否有用,但你可能想看看NameCase。即使您不使用Ruby,也可以将此(它的开源)移植到您的语言中。
答案 4 :(得分:2)
还有this implementation in Python基于this algorithm。基本思路是将名称转换为标题大小写,然后根据异常的巨型查找表检查名称。
但实际上Jonathan Leffler所说的是:除非你有一些要求转换预先存在的无格式数据,否则自动大写将会做错事(特别是因为资本化规则因语言划分,文化差异,名称变化而异移民造成的,或者人们只是喜欢以某种特定的方式利用他们的名字。)
答案 5 :(得分:1)
我查找了需要特殊处理的名字。找到不区分大小写的匹配项时,我使用了查找值。这并不能解决使用与“已接受”大小写不符的案例的人。它允许我/用户根据需要添加名称。我找不到我的代码,但我确实从http://www.census.gov/得到了姓氏。