我有一个这样的字符串: @"10/04/2011",我只想在另一个字符串中保存“10”。我该怎么做?
@"10/04/2011"
以下两点:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)]; NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
但是请记住,有时候日期字符串的格式不正确,并且一天(或者一个月)显示为8,而不是08,因此第一个可能是两种解决方案中最糟糕的。
后者应该放在一个单独的数组中,这样您就可以实际检查返回的内容的长度,这样在出现损坏或无效的日期字符串的情况下,不会引发任何异常。
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"]; NSString* firstBit = [foo objectAtIndex: 0];
2018年7月3日更新:
既然这个问题已经有了 Swift 标签,我应该加上 Swift 方法来解决这个问题。其实很简单:
let substrings = "10/04/2011".split(separator: "/") let firstBit = substrings[0]
不过请注意,它给出了一个 Substring数组。如果需要将这些字符串转换回普通字符串,请使用 map
Substring
map
let strings = "10/04/2011".split(separator: "/").map{ String($0) } let firstBit = strings[0]
或者
let firstBit = String(substrings[0])
使用 [myString componentsSeparatedByString:@"/"]
[myString componentsSeparatedByString:@"/"]
我已将 很好的解决方案由 JeremyP 提供格式化为一个更通用的可重用函数如下:
///Return an ARRAY containing the exploded chunk of strings +(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter { return [stringToBeExploded componentsSeparatedByString: delimiter]; }
工作正常
NSString *dateString = @"10/10/2010";//Date NSArray* dateArray = [dateString componentsSeparatedByString: @"/"]; NSString* dayString = [dateArray objectAtIndex: 0];
目标-c:
NSString *day = [@"10/04/2011" componentsSeparatedByString:@"/"][0];
斯威夫特:
var day: String = "10/04/2011".componentsSeparatedByString("/")[0]
Swift 3.0版本
let arr = yourString.components(separatedBy: "/") let month = arr[0]