A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jine 中级黑马   /  2014-5-9 15:23  /  2087 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

NSString *s = @"welcome to shanghai to";


NSRange f1 = [s rangeOfString: @"to"];


NSLog(@"%ld, %ld", f1.location, f1.length);


我自己运行了下发现显示的是 8, 2。那如果我要获取第二个to的位置,代码该怎么写???


来个神人指教!!!{:3_48:}

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

7 个回复

正序浏览
我觉得将字符串转换成可变字符串,然后用遍历来查找字符串,这样只要遇到to都可以找到。
回复 使用道具 举报
Jine 中级黑马 2014-5-10 21:22:58
7#
流心语 发表于 2014-5-10 17:40
在使用rangeOfString:方法时参数使用“hai to”,然后将NSRange结构体的location成员的值加4就行了。
这种 ...

这方法好,简单又实用!
回复 使用道具 举报
  1. NSString *p = @"aa to bb to";
  2.         NSString *p1;
  3.         NSRange srg = [p rangeOfString:@"to"];
  4.         NSRange srg2;
  5.         
  6.         p1 = [p substringFromIndex:srg.location+srg.length];
  7.         srg2 = [p1 rangeOfString:@"to"];
  8.         
  9.         
  10.         NSLog(@"%ld",srg2.location);
复制代码


希望可以帮到你
回复 使用道具 举报
在使用rangeOfString:方法时参数使用“hai to”,然后将NSRange结构体的location成员的值加4就行了。
这种方法的思想是延长字符串,保证字符串的唯一性。
回复 使用道具 举报
NSString *str1 = @"wod to sefa afa to dfaes to reewer";
   
    NSMutableString *str = [NSMutableString stringWithString:str1];
  
   
    [str replaceCharactersInRange:[str rangeOfString:@"to"] withString:@"aa"];
    NSRange range1 = [str rangeOfString:@"to" ];
   
    NSLog(@"%ld-- %ld",range1.location,range1.length);
呵呵,暂时只能想到这个笨方法,
回复 使用道具 举报
如果把第一个to删除了,就会影响到第二个to的位置啊!
回复 使用道具 举报
你试试:把字符串转换为可变字符串,删除第一个to。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马