2012-07-31 66 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]; 
} 
相关问题