如何将人名存储在记录表中

时间:2010-11-28 21:08:53

标签: java function compare guava preconditions

简介

该死的,这比我想的要难。

有些人拥有骆驼案例名称,例如McDonaldO'Ferncher,有些人没有双管名称,但连字符名称,如Bowes-Lyon给定名称,例如Honovi Hohnihhohkaiyohos(Strong High Backed Wolf)。在一些文化空间,如:

  • 葡萄牙语您拥有超过1个系列名称和超过1个名字(默认情况下)。
  • 俄罗斯你有中间名( patronymic ),必须

在某些地方,您会遇到性别不平等,并且正式要求您使用前缀,例如:Sir(性别可以是男性,女性和中间人)。是的,前缀根据人的年龄而变化。

这样还不够 - 人们可以而且会结婚(这种情况经常发生)(你可能多次这样做),这是默认自定义至少一个合作伙伴更改系列名称。在大多数地方,人们可以改名或至少给出名字。 alt text

更多详情

如果您想回答这个问题,只是提示我正在尝试做什么,这一点并不重要。

我想要存储名称的表在xml和appengine datastore中有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容错。是的,意味着存在或缺少撇号,空格和其他符号或大小写差异可能产生不同的结果。 (对于愤世嫉俗的混蛋 - 这不是家庭作业。)

问题是:如何在记录表中存储人名?

1 个答案:

答案 0 :(得分:3)

如果您正在寻找一个简单,通用的解决方案,我想您会发现没有。阅读this blog posting,然后哭泣。

当你哭完后,看看this document,它试图为美国美国观众塑造名字。显然,它会做很多简化假设,这可能是无效的。