NSString *firstNameLastName =@"DavidMatvienko";
NSArray *listItems = [firstNameLastName componentsSeparatedByString:@"David , Matvienko"];
NSLog(@"listItems %@", listItems);
应该在NSLog得出结论:David Matvienko;大卫; Matvienko。为什么不想上班?有选择吗?
答案 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);