Object-C代码练习【字符串的基本概念和常用处理方法】
博客专区 > TomatosX 的博客 > 博客详情
Object-C代码练习【字符串的基本概念和常用处理方法】
TomatosX 发表于3年前
Object-C代码练习【字符串的基本概念和常用处理方法】
  • 发表于 3年前
  • 阅读 9
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 不可变字符串(NSString)和可变字符串(NSMutableString)的用法
//
//  main.m
//  字符串的基本概念和常用处理方法
//
//  Created by on 14-10-5.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
//        ========创建一个字符串常量========
        NSString *string1 = @"这是一个字符串常量";
        NSLog(@"%@", string1);
        
//        ========创建一个空的字符串========
        NSString *string2 = [[NSString alloc]init];
        NSString *string3 = [NSString string];
        NSLog(@"%@", string2);
        NSLog(@"%@", string3);
        
//        ========快速创建一个字符串(已不推荐使用),常量区========
        NSString *string4 = [[NSString alloc] initWithString:@"abc"];
        NSString *string5 = [NSString stringWithString:@"abc"];
        NSLog(@"%@", string4);
        NSLog(@"%@", string5);
        
//        ========创建一个格式化的字符串,堆区========
        NSString *string6 = [[NSString alloc] initWithFormat:@"整数:%d", 10];
        NSString *string7 = [NSString stringWithFormat:@"浮点数:%f", 10.8];
        NSLog(@"%@", string6);
        NSLog(@"%@", string7);
        
//        ========比较内容是否相同========
        if ([string5 isEqualToString:string4]) {
            NSLog(@"内容相同");
        } else {
            NSLog(@"内容不同");
        }
        
//        ========测试字符串是否为同一对象========
//        因为string4和string5是存放在常量区,所以他们对象相同
        if (string4 == string5) {
            NSLog(@"是同一对象");
        } else {
            NSLog(@"不是同一对象");
        }
        
//        这里对象存放在堆区,相当于每个对象开辟的一个新的内存空间,所以不是同一对象
//        但是如果是[NSString stringWithFormat:@"%d", 123];的话,是同一对象(暂时不解)
        NSString *string8 = [NSString stringWithFormat:@"123"];
        NSString *string9 = [NSString stringWithFormat:@"123"];
        if (string8 == string9) {
            NSLog(@"是同一对象");
        } else {
            NSLog(@"不是同一对象");
        }
        
//        ========比较字符串的大小========
        NSString *string10 = [[NSString alloc] initWithFormat:@"a"];
        NSString *string11 = [[NSString alloc] initWithFormat:@"b"];
//        NSComparisonResult是一个枚举类型
//        NSOrderedAscending = -1 (升序)
//        NSOrderedSame = 0 (相等)
//        NSOrderedDescending = 1 (降序)
//        b比a大,所以这里是-1,表示升序
        NSComparisonResult result = [string10 caseInsensitiveCompare:string11];
        NSLog(@"%ld", result);
        
//        ========求字符串长度========
        NSLog(@"string length: %ld", [string11 length]);
        
//        ========字符串的转换========
        NSString *string12 = @"Hello World";
        NSLog(@"大写:%@", [string12 uppercaseString]);
        NSLog(@"小写:%@", [string12 lowercaseString]);
        NSLog(@"首字母大写:%@", [string12 capitalizedString]);
        
//        ========转换成基本数据类型========
        NSString *string13 = @"3.14";
        NSLog(@"%f", [string13 floatValue]);
        NSLog(@"%d", [string13 intValue]);
        
//        ========将字符串转换成数组========
        NSString *string14 = @"abc bcd xyz";
//        以空格为分隔符
        NSArray *array = [string14 componentsSeparatedByString:@" "];
        NSLog(@"%@", array);
        
//        ========截取字符串========
        NSString *string15 = @"abcdef";
//        从0开始到3号字符,不包括3号
        NSLog(@"substringToIndex: %@", [string15 substringToIndex:3]);
//        从3号开始到最后,包括3号
        NSLog(@"substringFromIndex: %@", [string15 substringFromIndex:3]);
        
//        如下两种定义NSRang 的意义相同
        NSRange rang = {2, 2};
//        rang.location = 2;
//        rang.length = 2;
        NSString *newStr = [string15 substringWithRange:rang];
        NSLog(@"截取从2号开始,长度为2的字符串:%@", newStr);
        
//        ========字符串的拼接========
        NSString *string16 = @"123";
        NSString *string17 = @"abc";
        NSLog(@"这是拼接:%@ and %@", string16, string17);
        NSLog(@"%@", [string16 stringByAppendingString:string17]);
        NSLog(@"%@", [string16 stringByAppendingFormat:@"%@", string17]);
        
//        字符串的查询
        NSString *string18 = @"abctarget=_bank123";
        NSRange tmp = [string18 rangeOfString:@"target=_bank"];
        if (tmp.location != NSNotFound) {
            NSLog(@"找到字符串!位置位于:%@", NSStringFromRange(tmp));
        }
/////////////////////////////////////////////////////////////////////////////////////////////
//        ========可变字符串========
//        一下的更改都是在原字符串的基础上更改
        NSMutableString *muStr = [NSMutableString stringWithString:@"字符串"];
//        插入字符串
        [muStr insertString:@"可变" atIndex:1];
        NSLog(@"%@", muStr);
//        删除字符串,NSMakeRange第一个参数是location,第二个是length
        [muStr deleteCharactersInRange:NSMakeRange(1, 2)];
        NSLog(@"%@", muStr);
//        替换字符串
        [muStr replaceCharactersInRange:NSMakeRange(0, 2) withString:@"hello"];
        NSLog(@"%@", muStr);
    }
    return 0;
}
共有 人打赏支持
粉丝 22
博文 143
码字总数 119547
×
TomatosX
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: