为什么不想上班?有选择吗?

时间:2015-05-16 17:07:00

标签: ios objective-c xcode cocoa nsstring

NSString *firstNameLastName =@"DavidMatvienko";
NSArray *listItems = [firstNameLastName componentsSeparatedByString:@"David , Matvienko"];
NSLog(@"listItems %@", listItems);

应该在NSLog得出结论:David Matvienko;大卫; Matvienko。为什么不想上班?有选择吗?

4 个答案:

答案 0 :(得分:1)

试试这个:

NSString *firstNameLastName =@"David, Matvienko";  
NSArray *listItems = [firstNameLastName componentsSeparatedByString:@", "];
NSLog(@"listItems %@", listItems);

您混合参数。

componentsSeparatedByString会将字符串(此处为firstNameLastName)拆分为参数提供的内容。所以它按设计工作。如果这不是你想要的,你应该试着让你的问题更清楚。

答案 1 :(得分:0)

您正在寻找的代码是

NSString *firstNameLastName =@"David Matvienko";
NSArray *listItems = [firstNameLastName componentsSeparatedByString:@" "];
NSLog(@"listItems %@", listItems);

这将输出:

listItems (
 David
 Matvienko
)

基本上方法componentsSeparatedByString:将拆分基于分隔符

给出的字符串

答案 2 :(得分:0)

您完全误解了componentsSeparatedByString的作用。

componentsSeparatedByString的参数是在字符串组件之间找到的分隔符。例如

public class Service
{
    public int Id { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
}

发现Jim和Joe之间有一个逗号,Joe和James之间有一个逗号,结果是数组@ [@" Jim",@" Joe",@ "詹姆斯"。]

你正在使用@" David,Matvienko"作为分隔符字符串。如果你的字符串是@" 1David,Matvienko2David,Matvienko3"那么这个方法就会发现@" David,Matvienko"介于@" 1"和@" 2",以及@" 2"和@" 3",结果将是@ [@" 1",@" 2",@" 3"]。

由于您的字符串不包含该子字符串,因此您将获得一个包含原始字符串的数组。

无论是谁请你分开@" DavidMatvienko"名字和姓氏相当愚蠢。尝试拆分" DeForestKelley"和" LeonardDeCaprio"成名和姓。丢失的信息无法恢复。

答案 3 :(得分:0)

NSString* stringToTest = @"DavidMatvienko";
NSMutableString* resultString = [NSMutableString stringWithString:stringToTest];
NSCharacterSet *upperCaseSet = [NSCharacterSet uppercaseLetterCharacterSet];
NSRange upperCaseRange = [stringToTest rangeOfCharacterFromSet: upperCaseSet options:NSBackwardsSearch];
if (upperCaseRange.location != NSNotFound) {
    [resultString insertString:@" " atIndex:upperCaseRange.location]; }
NSLog(@"%@", resultString);