首页 > 解决方案 > 如何在一个名字中获得所有中间名

问题描述

说,我有以下全名:

1)惠特尼·拉贾坎亚·西里瓦纳·乔文迪

2) 谢丽尔·汤普森·温斯顿

如何从上述各自的全名中检索中间名?

示例:
name (1) 中有 2 个中间名,name(2) 中有 1 个中间名

我使用了这个代码,但它没有得到中间名。

var components = fullName.components(separatedBy: " ")
if(components.count > 0)
{
    let firstName = components.removeFirst()
}

问题

1)如何获得一个名字中的所有中间名?有些名称有 1 个或多个(如上所示)。

谢谢

标签: swift4

解决方案


如果您将“中间名”定义为名称中除第一个和最后一个单词之外的所有内容,那么您可以用空格dropFirst和分割字符串dropLast,然后加入结果。

var components = fullName.components(separatedBy: " ")

if (components.count <= 2) {
    // no middle name
} else {
    let middleName = components.dropFirst().dropLast().joined(separator: " ")
}

您还可以使用PersonNameComponentsFormatter名称是否来自不同的语言环境,并且您需要不同的方式来处理它们。


推荐阅读