Mla*_*den 6 parsing objective-c
有人可以帮我从Objective C中的字符串"/ Date(1242597600000)/"中提取int时间戳值
我想得到1242597600000.
谢谢
Tom*_*rys 14
一个简单的方法:
NSString *timestampString = @"\/Date(1242597600000)\/";
NSArray *components = [timestampString componentsSeparatedByString:@"("];
NSString *afterOpenBracket = [components objectAtIndex:1];
components = [afterOpenBracket componentsSeparatedByString:@")"];
NSString *numberString = [components objectAtIndex:0];
long timeStamp = [numberString longValue];
Run Code Online (Sandbox Code Playgroud)
或者,如果您知道字符串将始终具有相同的长度和格式,您可以使用:
NSString *numberString = [timestampString substringWithRange:NSMakeRange(7,13)];
Run Code Online (Sandbox Code Playgroud)
另一种方法:
NSRange openBracket = [timestampString rangeOfString:@"("];
NSRange closeBracket = [timestampString rangeOfString:@")"];
NSRange numberRange = NSMakeRange(openBracket.location + 1, closeBracket.location - openBracket.location - 1);
NSString *numberString = [timestampString substringWithRange:numberRange];
Run Code Online (Sandbox Code Playgroud)
Abi*_*ern 12
有不止一种方法可以做到这一点.这是一个使用NSScanner的建议;
NSString *dateString = @"\/Date(1242597600000)\/";
NSScanner *dateScanner = [NSScanner scannerWithString:dateString];
NSInteger timestamp;
if (!([dateScanner scanInteger:×tamp])) {
// scanInteger returns NO if the extraction is unsuccessful
NSLog(@"Unable to extract string");
}
// If no error, then timestamp now contains the extracted numbers.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29809 次 |
| 最近记录: |