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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

8 个回复

倒序浏览
#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;
}

回复 使用道具 举报
yuang4074 发表于 2015-6-5 10:23
#import
int main() {
    //创建不可变的字符串

帅哥,你这个代码运行成功了吗
回复 使用道具 举报
welfarezhang 发表于 2015-6-5 11:04
帅哥,你这个代码运行成功了吗

嗯,考试不要抄袭哦
回复 使用道具 举报
围观学习了 ,
回复 使用道具 举报
yuang4074 发表于 2015-6-5 11:19
嗯,考试不要抄袭哦

不会的,我会把它变为自己的东西,感谢你的分享
回复 使用道具 举报
啊   学习一下
回复 使用道具 举报
本帖最后由 talent123 于 2015-6-7 19:14 编辑

我去????这就删除了????这什么原理...不可变字符串也能被赋值吗?
回复 使用道具 举报
学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马