他の文字列から文字列を抽出する方法を探しています。任意の長さで文字列のどの部分にあってもかまいませんので、通常のメソッドは機能しません。私が抽出したい何たとえば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:theresの 8+のiOSのとおりビルトインクラス自動的NSURLComponents
が7+ iOS版で提供されています(あなたのためのクエリパラメータを解析することができますNSURLComponents
と呼ばれますが、クエリパラメータは、機能ISNを解析't)。
URLQueryParameters関数は完全に機能します!どうも – youssman
この
NSArrayのを試してみてください* FOO = [ "2011年10月4日" 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
このリンクを確認してください。そのシンプルで便利な。 http://stackoverflow.com/a/5806879/1635315 – iKT