我有一个这样的字符串:@"10/04/2011"
我想在另一个字符串中只保存“10”。我怎么能这样做?
答案 0 :(得分:375)
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])
答案 1 :(得分:36)
这两个中的任何一个:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
虽然请记住,有时日期字符串格式不正确,一天(或一个月)显示为8,而不是08,所以第一个可能是2个解决方案中最差的。
后者应该放在一个单独的数组中,这样你就可以实际检查返回的东西的长度,这样你就不会在任何来源的日期字符串损坏的情况下抛出任何异常。< / p>
答案 2 :(得分:9)
工作正常
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
答案 3 :(得分:8)
目标-C:
NSString *day = [@"10/04/2011" componentsSeparatedByString:@"/"][0];
夫特:
var day: String = "10/04/2011".componentsSeparatedByString("/")[0]
答案 4 :(得分:6)
使用[myString componentsSeparatedByString:@"/"]
答案 5 :(得分:5)
我已将nice solution provided by JeremyP above格式化为下面更通用的可重用函数:
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}
答案 6 :(得分:1)
Swift 3.0版本
let arr = yourString.components(separatedBy: "/")
let month = arr[0]