我需要将全名转换为名和姓。如果名称大部分是西方的话,这可能在〜90%的成功率内吗?是否有可能将全名转换为名字和姓氏?
回答
假设你输入名字名称名称姓氏,分割字符串,并使用第一和最后一个指标:
String bigName = "John McDonalds Harris"
String[] names = bigName.split(" ");
System.out.println(String.format("FirstName: %s : LastName: %s", names[0], names[names.length-1]));
它会打印:FistName:约翰:名字:哈里斯
我不这么认为。它主要取决于你可用的数据。如果用户总是输入“名字姓氏”,那么你可以检查最后一个空格,执行分离,就是这样。
但是对于典型的德国客户来说,可能会有大量的缺失匹配。名称如“Hans Ulrich-Schmidt”用户忘记破折号(或者更糟,明确地不输入它)将不会被正确解析。但是没有明确的方法来确定“Ulrich”“Hans Ulrich Schmidt”是否属于第一个或最后一个名字。
这只是一个例子,还有更多,所以我认为:不,这是不可能的。
补充:至少在瑞士和据我知道在德国它是* *可能有一个由姓* *没有了几许。所以你完全失去了。 – chiccodoro 2010-12-16 11:31:48
也有区域差异:有些人倾向于先写作(并说出)他们的姓氏,他们的名字是最后一个名字,所以“KlausMüller”成为“MüllerKlaus”......并且你迷路了(再次!) – perdian 2010-12-16 11:35:50
您认为“西方名字“都有相同的简单格式。事实并非如此。例如,Spanish names一般有两个“姓氏”,但可能会变得相当复杂一点。
许多欧洲国家都有nobility particles这可能会使名称复杂化。
名称是文化的,文化比大多数人想象的要复杂得多和复杂。即使在“西方”。
这取决于初始格式。例如在VCards中,标准格式是
LastName;FirstName
分隔符是分号。
在一般情况下,这是非常困难的。我同意已经说过的人。 如果你真的想解决这个问题,你必须实现Locale相关的解析器。例如,英语通常由名字和姓氏组成。匈牙利人写姓和名字。在俄语中,它更复杂:有时它是名和姓,有时它们使用相反的顺序。这取决于文本样式。相反的顺序用在更正式的文本中。
您可以尝试使用名字和姓氏的字典。这可以在某些情况下有所帮助。但如何处理像“埃尔顿约翰”这样的名字?那么“沃伦克里斯托弗”呢?和“克里斯托弗罗宾”?
也许如果您有大量的名称列表,并且所有名称都使用相同的格式编写,那么您可以先使用名称字典检测样式,然后使用它。你可能会获得90%的成功。
好运
- 1. Python CSV将全名字符串分割成姓名和姓氏
- 2. CSV - 将全名分为姓氏和名字
- 3. 名字和姓氏中的Split姓氏
- 4. 用名字和姓氏查找姓名
- 5. 分割名称为名字和姓氏
- 6. JSON编码姓名+姓氏=全名
- 7. :姓名,姓氏:姓名
- 8. 将姓名字段拆分成姓氏和名字
- 9. 提取名字和姓氏
- 10. MVC User.Identity.Name,姓氏和名字
- 11. 搜索名字和姓氏
- 12. 单名文本框中的名字和姓氏的姓氏
- 13. 将单个字段分隔成名称,姓氏和姓氏
- 14. 更改姓氏,名字到姓氏,FirstInitial
- 15. 仅提取姓氏名字,姓氏
- 16. 如何从姓名全名的字符串中获取名字和姓氏
- 17. 串联名字和姓氏作为名称,然后ommit Firtname和姓氏在SSIS
- 18. 如何将'姓氏,名字'格式转换为SQL Server中的名字
- 19. 如何将Java中的字符串从全名分隔为姓氏和名字?
- 20. 解析姓名为第一名字和姓氏 - LINQ到实体
- 21. 为姓氏和名字建立索引
- 22. Bluesnap卡持有人名字和姓氏
- 23. 连接名字和姓氏形成一个全名字段
- 24. OpsHub - 用户映射 - 名字姓氏vs(Azure)姓氏,名字
- 25. 什么是REGEXP PHP语法将姓氏,名字更改为名字姓?
- 26. 预先存在现有的姓氏与名字从单独的姓名全名
- 27. 从名字和姓氏切换到姓氏然后名字的程序。你能帮助解决吗?
- 28. 用全名搜索而不是名字或姓氏
- 29. 如何从全名中提取名字和姓氏
- 30. php代码从全名提取名字和姓氏
你的“假设”看起来就像OP提出的讨论点...... – chiccodoro 2010-12-16 11:20:24
-1这就是讨论的要点:它不是*只是“把最后一个字作为姓“就是这样! – perdian 2010-12-16 11:31:34
是的,但必须的名字将通过我所做的代码,大多数西方人的名字都是这样,并非所有的都是,但必须是他们,我的名字有两个姓氏,但就像我说的必须是名字姓名姓氏姓氏,如果你想得到激进的Japonese名字是倒退姓氏名字姓名的名字。 。 。 – DVD 2010-12-16 12:06:19