您好我尝试将目标-c中的java函数转换为iphone
爪哇:
public int substrCount(String str, String needle) {
int count = 0;
int index = -needle.length();
while ((index = str.indexOf(needle, index + needle.length())) != -1) {
count++;
}
return count;
}
iPhone:
-(int)substrCount:(NSString *) str withSearch:(NSString *) needle
{
NSRange lastIndex;
lastIndex.length = [str length];
NSInteger count =0;
while(lastIndex.length != -1){
lastIndex = [str rangeOfString:needle options:NSCaseInsensitiveSearch range:lastIndex];
//lastIndex = str.indexOf(needle,lastIndex);
if( lastIndex.length != -1){
NSLog(@"+1");
count ++;
}
}
}
但它太难了,我不知道什么时候可以做到。
也许存在更好的解决方案?我没找到任何东西:/
抱歉我的英文不好!
答案 0 :(得分:1)
我可能永远不会在生产中编写此代码,但您可以简单地问:
[[str1 componentsSeparatedByString:str2] count] - 1;
该表达式的结果将是一个整数,表示在str2
中找到str1
的次数。
但是,代码的问题是rangeOfString:如果找不到子字符串,则返回NSNotFound
,而不是-1
。