我有以下字符串:
callback({"Outcome":"Success", "Message":null, "Identity":"Request", "Delay":0.002, "Symbol":"AAPL", "CompanyName":"Apple Inc.", "Date":"1\/13\/2011", "Time":"4:02:36 PM", "Open":344.6, "Close":345.93, "PreviousClose":344.42, "High":346.63, "Low":343.86, "Last":345.93, "Change":1.51, "PercentChange":0.438, "Volume":785960})
我希望我的最后一个字符串不包含callback(
和字符串末尾的最后一个)
。我该如何修改这个NSString?
答案 0 :(得分:3)
NSScanner非常适合这类事情。
NSString *json = nil;
NSScanner *scanner = [NSScanner scannerWithString:fullString];
[scanner scanUpToString:@"{" intoString:NULL]; // Scan to where the JSON begins
[scanner scanUpToString:@")" intoString:&json];
NSLog(@"json = %@", json);
答案 1 :(得分:2)
从中NSMutableString
创建string
。即NSMutableString *string = [NSMutableString stringWithString:myString];
。
然后执行string = [string substringToIndex:[string length]-1];
,然后执行string = [string substringFromIndex:9];
或其他此类操作。
或者,再次使用NSMutableString
个实例创建NSString
个实例,然后致电[string replaceOccurrencesOfString:@"callback(" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [string length])];
和[string replaceOccurrencesOfString:@")" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [string length])];
。这可能是首选。
无论哪种方式,然后使用新字符串创建NSString
实例,如果您需要goodString = [NSString stringWithString:string];
,请使用NSString
。
答案 2 :(得分:1)
您无法修改NSString(仅限NSMutableString),但您可以使用[string substringWithRange:NSMakeRange(9, [string length] - 10)]
。要实际改变NSMutableString,您必须使用两个deleteCharactersInRange:
调用来修剪您不想要的部分。