黑马程序员技术交流社区
标题: 一个关于OC字符串的问题 [打印本页]
作者: 程序猿-2014 时间: 2014-4-12 11:42
标题: 一个关于OC字符串的问题
本帖最后由 程序猿-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:@"-"];
}
这一句是什么意思 具体解释下 不要像写注释一样的回答 看不懂
作者: 董月峰 时间: 2014-4-13 14:49
楼主求给分啊
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里面的"-"为止
作者: 董月峰 时间: 2014-4-13 15:09
本帖最后由 董月峰 于 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);
}
作者: 程序猿-2014 时间: 2014-4-14 23:00
董月峰 发表于 2014-4-13 15:09
#import
int main(int argc, const char * argv[]){ NSString *str = @"www-it-heima-com"; NSLog(@ ...
长知识了 很好很强大
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |