Answers:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
更新7/3/2018:
既然问题已经获得了Swift标签,我应该添加Swift的方法。非常简单:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
尽管请注意,它为您提供了的数组Substring
。如果您需要将它们转换回普通字符串,请使用map
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
要么
let firstBit = String(substrings[0])
[foo firstObject]
在一般情况下使用可能会更好,因为它也可以正确处理空数组。
这些2:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
尽管请记住,有时日期字符串的格式不正确,并且一天(或该日期的一个月)显示为8,而不是08,所以第一个可能是2种解决方案中最差的一种。
后者应该放在一个单独的数组中,这样您就可以实际检查返回的内容的长度,因此,无论您拥有的任何来源的日期字符串损坏或无效,都不会引发任何异常。
工作正常
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
用 [myString componentsSeparatedByString:@"/"]
我已经将上面JeremyP提供的不错的解决方案格式化为下面更通用的可重用函数:
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}