简介
该死,这比我想象中的要难。
有些人有驼峰式的名字,例如麦当劳
或奥弗切尔
,有些人没有双姓氏,而是像鲍斯-里昂
那样使用连字符号作为名字,或者只有给定名字,例如Honovi Hohnihhohkaiyohos
(强壮的高背狼)。在某些文化背景下,例如:
- 在葡萄牙,你有超过一个姓氏和超过一个名字(默认情况下)。
- 在俄罗斯,你会有一个中间名(父称),它是必须的。
在一些地方存在性别不平等,为了正式称呼一个人,你需要使用前缀,例如:Sir
(其中性别可以是男性、女性和中性)。是的,前缀会根据人的年龄而变化。
好像这还不够——人们会结婚(这种情况相当普遍)(他们可能会多次结婚),在至少一个伴侣改变他们的姓氏是一种默认习惯。在大多数地方,人们可以更改自己的名字或至少是给定名字。
更多细节
如果你想回答问题,这不重要,只是给出我试图做什么的提示。
我想要存储名称的表格位于 XML 中,并使用 App Engine 数据库 和 Twig 对象存储接口(我使用 Twig 等工具编译模式)。数据本身可能来自各个地方,可能存在旧名称的情况(因此需要存储多个名称)。
我的最佳猜测是:
@XmlAttribute @Key protected Long id;
@XmlElement(required = true) final protected List<String> lastName;
@XmlElement(required = false) protected String middleName;
@XmlElement(required = true) final protected List<String> firstName;
@XmlElement(required = true) protected Boolean isMale;
@XmlElement(required = true) protected Date birthday;
//+locale for naming?
编写compareTo
方法的函数或前提条件让我很开心...我正在认真考虑0故障容忍度。是的,意思是撇号、空格和其他符号或大小写差异的存在或缺失可能导致不同的结果。(对于愤世嫉俗的人来说 - 这不是作业。)
问题是:如何在记录表中存储人名?