拆分一个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]