文档章节

五.Foundation框架(2)--NSString/NSMutableString

天宇逍遥heart
 天宇逍遥heart
发布于 2016/09/21 18:29
字数 998
阅读 18
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

    

     @autoreleasepool {

          栈区 - 由系统进行管理,程序员无法操控

          堆区 - 由程序员进行管理

         NSString *str = @"abcdefg";     将会存放在栈区,不需要主动释放内存

          以下创建的都需要人工进行释放内存

         NSString *strA = [[NSString alloc]init];

         strA = @"abcdefghijgk";

         NSString *strB = [[NSString alloc]initWithString:strA];

          c语言字符串转换为oc字符串

         char *c = "abv";

         NSString *strC = [[NSString alloc]initWithUTF8String:c];

         

          以下创建的都会自动释放 原理是会在方法调用之后加上[xx autorelease]

         NSString *strD = [NSString stringWithFormat:@"abcd%d",3];

         NSString *strE = [NSString stringWithString:strD];

         NSString *strF = [NSString stringWithUTF8String:c];

         

          子串系列

          [strB substringFromIndex:1]; 从某个位置到结束的所有字符串

          [strB substringToIndex:1];  从开始到某个位置的所有字符串

          [strB substringWithRange:(NSRange){0,1}]; 截取某个范围内的字符串

          [strB componentsSeparatedByString:@"/"];   以 '/' 为标准进行字符串切割,然后切割出来的每一部分字符串放入到数组当中

          比较系列

         [strB isEqualToString:@"b"];    判断两个字符串是否相等

         NSComparisonResult cResult = [strB compare:strA]; 1 前者大 0两者相等 -1前者小

         if(cResult == NSOrderedAscending)

             NSLog(@"left<right");

         else if(cResult == NSOrderedDescending)

             NSLog(@"left>right");

         else if(cResult == NSOrderedSame)

             NSLog(@"left==right");

         

          文件读取系列

         NSString *path = @"/Users/whunf/Desktop/IT12/OCWithProperty/OCWithProperty/office资料.c";

         NSString *strG = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

          首字母大写,其余小写

         str = @"HEllo woRld";

         NSLog(@"原来的:%@,转换后的:%@",str,[str capitalizedString]);

          是否包含

         NSRange rng = [strB rangeOfString:@"fe"];

          判断xx是否为空

         if(rng.location == NSNotFound)

             NSLog(@"not found");

          将结构体包装成类,便于输出

         NSLog(@"%@",NSStringFromRange(rng));

          NSLog(@"%ld,%ld",rng.location,rng.length);

         str = @"1";

          类型转换

         int intValue = [str intValue];

         NSInteger integerValue = [str integerValue];

         float floatValue = [str floatValue];

         double doubleValue = [str doubleValue];

         _Bool boolValue = [str boolValue];

         long long longValue = [str longLongValue];

         const char *cs = [str UTF8String];

          字符串长度

         NSInteger len = [str length];

          转换成大写

         str = @"b";

         NSLog(@"%@",[str uppercaseString]);

          转换成小写

         str = @"B";

         NSLog(@"%@",[str lowercaseString]);

          判断是否以xx为开头

         BOOL ret = [path hasPrefix:@"/Users"];

         NSLog(@"%d",ret);

          判断是否以xx为结尾

         ret =[path hasSuffix:@".d"];

          NSLog(@"%d",ret);

          是否包含某个字符串

            [str containsString:@“d"];

    }

    return 0;

}

上面讲解了,NSString的常用方法。

       下面是NSMutableString的常用方法:

         NSMutableString 可变

             单词记忆

         追加 append  插入insert  删除 delete remove

         方位/下标 index  坐标 location  格式 Format  

 

        NSMutableString *mStr = [[NSMutableString alloc]init];

         分配字符串大小,提升性能,但不是不可以超过这个范围。

        NSMutableString *mString = [[NSMutableString alloc]initWithCapacity:10];

         mStr = @"def"; 可变字符串不能进行直接赋值

        NSLog(@"%@",mStr);

         字符串添加系列

         在某个位置插入字符串

        [mStr insertString:@"abc" atIndex:0];

        NSLog(@"%@",mStr);

         在原有的字符串后面进行追加内容

        [mStr appendString:@"def"];

        NSLog(@"%@",mStr);

         在原有的字符串后面格式化后追加内容

        [mStr appendFormat:@"deg%d",3];

        NSLog(@"%@",mStr);

         删除某个范围内的字符

        [mStr deleteCharactersInRange:(NSRange){0,3}];

        NSLog(@"%@",mStr);

 

实例讲解:

 1.创建一个字符串 "OCWith/OCWithProperty/office.c",利用string当中的子串截取方法,将每个/之前的单词截取出来,放入到数组当中

 

int main(int argc, const char * argv[]) {

     @autoreleasepool {

NSString *str =@"OCWith/OCWithProperty/office.c";

         int loc = 0;                截取开始的坐标

         int len = 0;                截取的长度

          创建一个数组,用于储存截取出来的字符串

         NSArray *arr = [NSArray array];

         for (int i = 0; i<str.length; i++) {

              获取当前位置的字符

             if([str characterAtIndex:i] == '/')

             {

                  获取range范围内的字符串

                 NSString *temp = [str substringWithRange:(NSRange){loc,len}];

                  将获取的字符串组合到数组中

                 arr = [arr arrayByAddingObject:temp];

                 loc = i+1;          截取开始的位置变化

                 len = -1;           长度重设

             }

             len++;

         }

         NSLog(@"%@",arr);

          ----------------------------------

          通过自带的方法实现字符串截取

         arr = [str componentsSeparatedByString:@"/"];

         NSLog(@"%@",arr);

         

         2.创建一个方法,用来获取文件名称和扩展名

          获取文件名称

         NSString *temp = [str substringWithRange:(NSRange){loc,len}];

         NSString *fileName = @"";       用于储存文件名称

         NSString *fileType = @"";       用于储存文件类型

         loc = 0;

         len = 0;

         for (int i = 0; i<temp.length; i++) {

              获取当前位置的字符

             if([temp characterAtIndex:i] == '.')

             {

                  获取range范围内的字符串

                 fileName = [temp substringWithRange:(NSRange){loc,len}];

                 loc = i+1;

                 len = -1;

             }

             len++;

         }

         fileType = [temp substringWithRange:(NSRange){loc,len}];

         NSLog(@"文件名称:%@,文件类型:%@",fileName,fileType);

    }

    return 0;

}

© 著作权归作者所有

天宇逍遥heart
粉丝 1
博文 12
码字总数 12795
作品 0
上海
私信 提问
OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象

在之前的一篇文章中我们说到了Foundation框架中的NSObject对象: http://blog.csdn.net/jiangwei0910410003/article/details/41788121 那么今天在在来继续看一下Foundation框架中的常用对象:...

jiangwei0910410003
2014/12/07
0
0
Objective-C之字符串对象

Foundation框架支持一个名为NSString的类,用于处理字符串对象。注意 : 要使用OC语言创建一个字符串对象,需要在字符串开头放置一个@字符: 一 : NSLog%@用来显示NSString。 结果: 当然值...

Aonaufly
2018/01/01
0
0
OC Foundation & NSString 字符串

一 Foundation 简介 Foundation 框架是苹果公司提供给开发人员,提高效率的的工作库。 Foundation中提供了了多类,定义在头文件中。例如NSString类: #import <Foundation/NSSortDescriptor...

卧龙小
2014/11/16
285
0
md5和base64加密解密

// // main.m // MD5 // // Created by dc008 on 16/1/5. // Copyright © 2016年 lin. All rights reserved. // #import <Foundation/Foundation.h> #import "NSString+Extend.h" int main(......

温暖c
2016/01/05
47
0
NSMutableString的总结

一.NSMutableString的基本概念 1.NSMutableString是可变字符串,是NSString的子类 2.NSString是不可变的,里面的文字内容是不能修改的 3.NSMutableString是可变的,里面的内容可以随时修改 ...

这孤独世界幸好有你丶
2016/09/12
17
1

没有更多内容

加载失败,请刷新页面

加载更多

nginx反向代理+负载均衡+服务器宕机解决办法

反向代理 作用:保证系统安全,不暴露服务器IP,利用nginx服务器,利用内网ip进行访问,避免出现攻击服务器的情况 启动本地tomact,127.0.0.1:8080可以访问到tomcat管理页面 效果:通过 bbs....

Jack088
8分钟前
1
0
返回IEnumerable 与IQueryable相比 [关闭]

返回IQueryable<T>与IEnumerable<T>之间有什么区别? IQueryable<Customer> custs = from c in db.Customerswhere c.City == "<City>"select c;IEnumerable<Customer> custs = from c i......

技术盛宴
15分钟前
2
0
开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门

点击下载《Knative 云原生应用开发指南》 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注。Knative 在 Kubernetes 之上提供了一套完整的应用 Serverless 编排服务,让应用开发...

阿里巴巴云原生
19分钟前
2
0
解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

手淘推荐简介 手淘推荐的快速发展源于2014年阿里“All in 无线”战略的提出。在无线时代,手机屏幕变小,用户无法同时浏览多个视窗,交互变得困难,在这样的情况下,手淘借助个性化推荐来提升...

阿里云官方博客
22分钟前
2
0
内核程序中进程的pid,handle,eprocess之间相互转换的方法

在内核程序开发中,我们常常需要取得某进程的pid或句柄,或者需要检索进程的eprocess结构,很多API函数需要的参数也不同,所以掌握pid<->handle<->eprocess相互转换的方法会大大提高我们的开...

simpower
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部