ios - 从字符串中提取名字和姓氏首字母

标签 ios parsing nsstring

我有一个包含用户全名的 NSString。有些名字是标准的首尾排列 (Kyle Begeman),而另一些只是一个名字 (TechCrunch)。

我如何按原样获取名字,然后获取姓氏的第一个首字母,如果只有一个名字,则只获取全名?

基本上,我希望将以上内容变成 Kyle B. 或只是 TechCrunch,具体取决于名称。

NSString *username = @"Kyle Begeman"
NSString *otherUserName = @"TechCrunch"

converted to 

@"Kyle B" 

// No conversion because it is a single word name
@"TechCrunch" 

使用 substringToIndex 是我如何获取整个字符串中的第一个字母的方法,我知道有一种方法可以通过 @"" 空格将字符串分隔成一个数组,但我可以弄清楚如何轻松地按照需要的方式生成结果。

任何帮助都会很棒!

最佳答案

(NSString*)firstNameWithInitial:(NSString*)userName {

    NSArray *array = [userName componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    array = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != ''"]];
    NSString *firstName = [array objectAtIndex:0];

    NSString finalNameString;
    if ([array count] > 1) {
        NSString *lastNameInitial = [[array objectAtIndex:1] substringToIndex:1];
        finalNameString = [firstName stringByAppendingString:[NSString stringWithFormat:@" %@", lastNameInitial]];
    else {
        finalNameString = firstName;
    }

    return finalNameString;
}

此函数应返回您需要的内容。请注意,您可以通过检查数组中的对象数量来修改它以处理具有 2 个以上名字的人。

关于ios - 从字符串中提取名字和姓氏首字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18022399/

相关文章:

string - 使用SplitString消除空白字符串

Objective-C,来自偏移量的 rangeOfString

objective-c - 奇怪的 NSString 泄漏

使用 Thumbor 第三方调整图像大小时,ios SdWebImage 图像不会显示

html - Hpple 在 iOS 中使用复杂的 HTML

iOS 应用程序 - 复杂的 UI 与复杂的数据分离

c# - 如何从查询中删除所有参数的值

ios - 环球银行金融电信协会 : Convert String from XLM to NSDate

ios - 将多个布局约束数组附加到单个 Swift 数组中?

ios - 如何注册应用程序来开设地点