嘿,我正在尋找一種方法來從另一個字符串中提取字符串。它可以是任何長度,可以在字符串的任何部分,所以通常的方法不起作用。IOS:NSString從字符串中檢索子字符串
例如 http://bla.com/bla?id=%1234%&something=%888%
我想提取從ID =%至下一%。
任何想法的?
嘿,我正在尋找一種方法來從另一個字符串中提取字符串。它可以是任何長度,可以在字符串的任何部分,所以通常的方法不起作用。IOS:NSString從字符串中檢索子字符串
例如 http://bla.com/bla?id=%1234%&something=%888%
我想提取從ID =%至下一%。
任何想法的?
使用rangeOfString方法:
NSRange range = [string rangeOfString:@"id=%"];
if (range.location != NSNotFound)
{
//range.location is start of substring
//range.length is length of substring
}
然後你可以砍了使用substringWithRange:
,substringFromIndex:
和substringToIndex:
方法來得到你想要的比特串。這裏有一個解決您的具體問題:
NSString *param = nil;
NSRange start = [string rangeOfString:@"id=%"];
if (start.location != NSNotFound)
{
param = [string substringFromIndex:start.location + start.length];
NSRange end = [param rangeOfString:@"%"];
if (end.location != NSNotFound)
{
param = [param substringToIndex:end.location];
}
}
//param now contains your value (or nil if not found)
另外,這裏是從一個URL,如果你需要做的這幾次可能更爲有用提取查詢參數的通用解決方案:
- (NSDictionary *)URLQueryParameters:(NSURL *)URL
{
NSString *queryString = [URL query];
NSMutableDictionary *result = [NSMutableDictionary dictionary];
NSArray *parameters = [queryString componentsSeparatedByString:@"&"];
for (NSString *parameter in parameters)
{
NSArray *parts = [parameter componentsSeparatedByString:@"="];
if ([parts count] > 1)
{
NSString *key = [parts[0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *value = [parts[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
result[key] = value;
}
}
return result;
}
這並不值剝離%字符,但你可以做,要麼與
NSString *value = [[value substringToIndex:[value length] - 1] substringFromIndex:1];
或者喜歡的東西
NSString *value = [value stringByReplacingOccurencesOfString:@"%" withString:@""];
UPDATE:於iOS 8+那裏有一個內置的類名爲NSURLComponents
,可以自動分析查詢參數爲你(NSURLComponents
可在iOS 7+,但查詢參數解析功能ISN 「T)。
URLQueryParameters函數完美工作!謝謝 – youssman 2014-08-27 12:10:52
嘗試此
的NSArray *富= [@ 「10/04/2011」 componentsSeparatedByString:@ 「/」];
NSString * day = [foo objectAtIndex:0];
[http://stackoverflow.com/questions/8484826/retrieving-particular-lines-of-text-from-string-memory-management-issues][1] [1] :http://stackoverflow.com/questions/8484826/retrieving-particular-lines-of-text-from-string-memory-management-issues 這是我的問題..關注它 – Shubhank 2012-01-18 15:00:44
檢查此鏈接。其簡單而實用。 http://stackoverflow.com/a/5806879/1635315 – iKT 2014-01-08 06:28:19