从第一个空格拆分NSString

7c9*_*fdf 3 regex objective-c ios

我的应用程序中有一个名称textfield,其中firstname可能是中间名,也可以是lastname.现在我想用第一个空格分隔这些组件,即firstname和middlename/lastname之间的空格,所以我可以将它放入我的模型中.

例如:

Textfield Text:John D. Sowers

字符串1:约翰

字符串2:D.播种机.

我尝试过使用[[self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] firstObject]; & [[self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] lastObject]; 但是这些只有在没有中间名的情况下才有效.因为它获取第一个和最后一个对象,并且中间名被忽略.那么我将如何实现我想要的目标呢?

332*_*329 12

/*fullNameString is an NSString*/
NSRange rangeOfSpace = [fullNameString rangeOfString:@" "];
NSString *first = rangeOfSpace.location == NSNotFound ? fullNameString : [fullNameString substringToIndex:rangeOfSpace.location];
NSString *last = rangeOfSpace.location == NSNotFound ? nil :[fullNameString substringFromIndex:rangeOfSpace.location + 1];
Run Code Online (Sandbox Code Playgroud)

...条件赋值(rangeOfSpace.location == NSNotFound ? <<default value>> : <<real first/last name>>)可以防止索引超出边界错误.