拆分一个NSString来访问一个特定的部分

我有这样一个string: @"10/04/2011" ,我想只保存在另一个string中的“10”。 我怎样才能做到这一点?

 NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"]; NSString* firstBit = [foo objectAtIndex: 0]; 

这两个中的任何一个:

 NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)]; NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0]; 

虽然请记住,有时datestring格式不正确,一天(或一个月的事)显示为8,而不是08,所以第一个可能是2个解决scheme中最糟糕的。

后者应该放在一个单独的数组中,这样你才能真正的检查返回的东西的长度,所以你不会得到任何来自你拥有的源的损坏或无效datestring的exception。

它的工作正常

 NSString *dateString = @"10/10/2010";//Date NSArray* dateArray = [dateString componentsSeparatedByString: @"/"]; NSString* dayString = [dateArray objectAtIndex: 0]; 

Objective-C的:

  NSString *day = [@"10/04/2011" componentsSeparatedByString:@"/"][0]; 

迅速:

  var day: String = "10/04/2011".componentsSeparatedByString("/")[0] 

使用[myString componentsSeparatedByString:@"/"]

我已经把JeremyP提供的很好的解决scheme格式化成下面更通用的可重用函数:

 ///Return an ARRAY containing the exploded chunk of strings +(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter { return [stringToBeExploded componentsSeparatedByString: delimiter]; } 

Swift 3.0版本

 let arr = yourString.components(separatedBy: "/") let month = arr[0]