analysieren Kann mir jemand helfen int Timestamp-Wert aus dieser Zeichenfolge "/ Date (1242597600000) /" in Objective CWie Strings in Objective C
Ich mag 1242597600000.
Thx
bekommen würde zu extrahierenanalysieren Kann mir jemand helfen int Timestamp-Wert aus dieser Zeichenfolge "/ Date (1242597600000) /" in Objective CWie Strings in Objective C
Ich mag 1242597600000.
Thx
bekommen würde zu extrahierenEine einfache Methode:
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];
Alternativ, wenn Sie die Zeichenfolge wissen wird immer die gleiche Länge und das Format sein, könnten Sie verwenden:
NSString *numberString = [timestampString substringWithRange:NSMakeRange(7,13)];
Und eine andere Methode:
NSRange openBracket = [timestampString rangeOfString:@"("];
NSRange closeBracket = [timestampString rangeOfString:@")"];
NSRange numberRange = NSMakeRange(openBracket.location + 1, closeBracket.location - openBracket.location - 1);
NSString *numberString = [timestampString substringWithRange:numberRange];
Es gibt mehr als einen Weg, es zu tun. Hier ist ein Vorschlag mit einem 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.
IMO NSScanner ist _the_ way, es zu tun. Ich bin ein NSScanner junkie =) – monowerker
Dies extrahiert die Nummer nicht. Es scheitert wegen dem '\/Date (' Präfix. –
NSCharacterSet* nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
NSString* digitString = [timestampString stringByTrimmingCharactersInSet:nonDigits];
return [digitString longValue];
Thx, das mir viel – Mladen
Edited geholfen zu ändern 'NSRangeMake' zu' NSMakeRange'. – jrdioko