我有一个包含用户全名的 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/