黑马程序员技术交流社区

标题: 入学测试的一道题,请路过大神解答 [打印本页]

作者: welfarezhang    时间: 2015-6-5 09:23
标题: 入学测试的一道题,请路过大神解答
现有如下定义的字符串: NSString * str=@“iphoneAndroid”,能不能对该字符串进行修改,如果能,请输出删除Android后的新字符串。(Objective-C)
按照MJ老师视频上讲的,NSString是不可变字符串,NSMutableString是可变字符串,所以上面的答案是不能,可这是一道编程题,难道就回答一句“不能”??这不符合常理啊,求解答。

作者: yuang4074    时间: 2015-6-5 10:23
#import<Foundation/Foundation.h>

int main() {

    //创建不可变的字符串

    NSString *str = @"iphoneAndroid";

    NSLog(@"原字符串str的内容:%@",str);

    //创建临时可变字符串

    NSMutableString *mutstr = str.mutableCopy;//对str深复制

    NSRange r = NSMakeRange(6, 7);//截取Android,创建一个范围

    [mutstr deleteCharactersInRange:r];//将指定范围删除

    NSLog(@"利用NSMutableString修改后的临时字符串:%@",mutstr);

    //赋给原字符串

    str = mutstr;

    NSLog(@"最终字符串str的内容:%@",str);

    return 0;
}


作者: welfarezhang    时间: 2015-6-5 11:04
yuang4074 发表于 2015-6-5 10:23
#import
int main() {
    //创建不可变的字符串

帅哥,你这个代码运行成功了吗
作者: yuang4074    时间: 2015-6-5 11:19
welfarezhang 发表于 2015-6-5 11:04
帅哥,你这个代码运行成功了吗

嗯,考试不要抄袭哦
作者: 小龙女的萝卜    时间: 2015-6-5 11:30
围观学习了 ,
作者: welfarezhang    时间: 2015-6-5 12:25
yuang4074 发表于 2015-6-5 11:19
嗯,考试不要抄袭哦

不会的,我会把它变为自己的东西,感谢你的分享
作者: aofex    时间: 2015-6-5 16:26
啊   学习一下
作者: talent123    时间: 2015-6-7 19:12
本帖最后由 talent123 于 2015-6-7 19:14 编辑

我去????这就删除了????这什么原理...不可变字符串也能被赋值吗?

作者: 宋兴1228    时间: 2015-6-7 21:17
学习一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2