2012-07-31 65 views

回答

7

你可能想在- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange無法找到。 range參數是一個NSRange,指示在乾草堆中尋找針的位置。通過NSMakeRange(startIndex, [haystack length]-startIndex)應該做你想做的。

+0

獲得第一索引字符串的我用 [myString的rangeOfString:@ 「url_encoded_fmt_stream_map =」]; 這個方法返回int 2323223422這個索引是不可能的,因爲我在字符串中的總字符數是4030爲什麼會發生這種情況 – 2012-07-31 15:14:44

+0

您可能想要提出一個新的問題。此方法返回一個NSRange,而不是一個int。你檢查這個結構的「位置」成員嗎?它可以等於NSNotFound嗎? – 2012-07-31 16:54:27

+0

我與它一起使用.location和後來我發現它返回索引超過總長,因爲它沒有發現字符串。 感謝Objective C的子字符串函數在功能上與Java有點不同。 感謝您的幫助 – 2012-08-01 09:55:03

1

您的意思是你沒有找到this documentation page搜索NSString並點擊第一個鏈接?

NSString *substring = [string substringFromIndex:startIndex]; 
+0

他可能不知道它被稱爲'NSString' – Dustin 2012-07-31 14:18:05

+1

我先檢查了他的其他問題。 [這個問題](http://stackoverflow.com/q/11027842/916299)明確引用NSString – 2012-07-31 14:21:12

+0

此外,當僅僅搜索問題標題時的第二個鏈接返回一個合適的答案,(現在是第一個問題)。 – 2012-07-31 14:24:17

1
NSRange range = [string rangeOfString:searchString 
           options:0 
           range:NSMakeRange(startIndex, [string length]-startIndex)]; 
if (range.length != 0) { 
    NSString* resultString = [string substringWithRange:range]; 
} 
相關問題