[英]Is it possible to convert full name to firstname and lastname?
我需要將全名轉換為名字和姓氏。 如果名字大多是西方的,這是否有可能在90%的成功率內?
我不這么認為。 它主要取決於您可用的數據。 如果用戶總是輸入“ Firstname Lastname”,那么您可以檢查最后一個空格,執行分隔,僅此而已。
但是對於典型的德國客戶來說,可能會丟失很多匹配項。 諸如“ Hans Ulrich-Schmidt”之類的名稱將使用戶忘記破折號(或更糟的是,明確地不輸入破折號),將無法正確解析。 但是沒有明確的方法來確定“漢斯·烏爾里希·施密特”中的“烏爾里希”是姓還是名。
那只是一個例子,還有更多例子,我想:不,這不可能。
假設您輸入的是FirstName Name Name LastName,請分割字符串並使用first和last索引:
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:John:LastName:Harris
這取決於初始格式。 例如,在VCards中,標准格式為
LastName;FirstName
分隔符是分號。
通常情況下,這非常困難。 我同意那些已經說過的話。 如果您真的想解決該問題,則必須實現依賴於語言環境的解析器。 例如,英語通常由名字和姓組成。 匈牙利人寫下姓氏,然后寫下名字。 俄語更復雜:有時是名字和姓氏,有時它們使用相反的順序。 這取決於文本樣式。 在更正式的文本中使用相反的順序。
您可以嘗試使用名字和姓氏的字典。 在某些情況下這可能會有所幫助。 但是,使用“ Elton John”之類的名字怎么辦? 那“沃倫·克里斯托弗”呢? 和“克里斯托弗·羅賓”?
如果您的名稱列表很大,並且所有名稱都使用相同的格式書寫,則可以先使用名稱字典檢測樣式,然后再使用它。 您可能會獲得90%的成功。
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.