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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序猿-2014 中级黑马   /  2014-4-12 11:42  /  1684 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程序猿-2014 于 2014-4-14 22:58 编辑

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSString *str = @"www-it-heima-com";
    NSLog(@"原字符串:%@",str);
    //获取字符串中第一个“-”的范围
    NSRange range = [str rangeOfString:@"-"];

    while (range.location != NSNotFound) {
        str = [str stringByReplacingCharactersInRange:range withString:@""];
      
        range = [str rangeOfString:@"-"];
    }
    //创建一个新的可变字符串
    NSMutableString *newStr = [NSMutableString stringWithString:str];
    //获取新字符串中"www"和"com"的范围
    //在"www"后和"com"前插入"."
    NSRange wwwRange = [newStr rangeOfString:@"www"];
    NSRange comRange = [newStr rangeOfString:@"com"];
    [newStr insertString:@"." atIndex:wwwRange.length];
    [newStr insertString:@"." atIndex:comRange.location + 1];
    NSLog(@"新字符串:%@",newStr);
}

上边是题目

  while (range.location != NSNotFound) {
        str = [str stringByReplacingCharactersInRange:range withString:@""];
        
        range = [str rangeOfString:@"-"];
    }
这一句是什么意思     具体解释下    不要像写注释一样的回答    看不懂

3 个回复

倒序浏览
楼主求给分啊
while (range.location != NSNotFound) {
    str = [str stringByReplacingCharactersInRange:range withString: @""];
   
    range = [str rangeOfString: @"-"];
}
之前代码中提到,range是一个字符串的范围NSRange range = [str rangeOfString: @"xxx"];,查找字符串范围找不到的时候,range.length = 0;range.location = NSNotFound == -1

while (range.location != NSNotFound)
意思就是你找的字符串的范围不是空的时候
str = [str stringByReplacingCharactersInRange:range withString: @""];
那么就把这个范围删掉,【其实就是用“”代替原来的“xxx”】,新的字符串里没有之前找到的“-”了

range = [str rangeOfString: @"-"];
while循环中的这句话的意思就是遇到"-"就删除,删完str里面的"-"为止

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 董月峰 于 2014-4-13 15:35 编辑

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSString *str = @"www-it-heima-com";
    NSLog(@"原字符串:%@",str);

    //创建一个新的可变字符串
    NSMutableString *newStr = [str mutableCopy];

    NSRange range = [newStr rangeOfString: @"-"];

    while (range.location != NSNotFound) {

        [newStr replaceCharactersInRange:range withString: @"."];

        range = [newStr rangeOfString: @"-"];
    }

    NSRange range2 = [newStr rangeOfString: @"t.h"];
    [newStr replaceCharactersInRange:range2 withString: @"th"];


    NSLog(@"新字符串:%@",newStr);

}

楼主题目哪里找的,我重新做了一下,你看看

更贱的做法是

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSString *str = @"www-it-heima-com";
    NSLog(@"原字符串:%@",str);

    //创建一个新的可变字符串
    NSMutableString *newStr = [str mutableCopy];

    NSRange range = [newStr rangeOfString: @"-it-heima-"];
    [newStr replaceCharactersInRange:range withString: @".itheima."];

    NSLog(@"新字符串:%@",newStr);
}

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
董月峰 发表于 2014-4-13 15:09
#import
int main(int argc, const char * argv[]){    NSString *str = @"www-it-heima-com";    NSLog(@ ...

长知识了    很好很强大
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马