没有获得String中char的正确索引

时间:2013-06-15 04:51:07

标签: ios objective-c nsstring indexing char

我有一个像“雨中有什么”的字符串

我需要在每个需要通过键盘输入的字符下添加闪烁。 所以我使用[characterAtIndex] ..

找到了这个角色

但是当我在'it'中使用[characterAtIndex:i]找到i的索引时,它返回5。 在字符串中必须是8。

如何获取字符串中下一个重复字符的正确索引?

代码:

- (int) getCurrentIndexOfChar : (unichar)c instring : (NSString *)str {
      for (int i = 0; i<=[str.length]; i++) {
         if(c == [str characterAtIndex:i]) {
             if (previousChar == c){    //I check here for previous character 
                  return i+1;           //If the previous character is same as next I increment index
             } else {
                  return i;
             }
             previousChar = c;
          }
      }
}

1 个答案:

答案 0 :(得分:3)

请尝试这种方式

NSString *main = @"This is it in rain";
NSString *search = @"This is i";
NSLog(@"Index: %d",[main rangeOfString:search].location+[search length]-1);

您可以在此处将搜索替换为用户输入的文字。