簡體   English   中英

是否可以將全名轉換為名字和姓氏?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM