[Objective-C] 007_Foundation框架之NSString与NSMutableString
在Cocoa Foundation中的NSString和NSMutableString类,为我们提供了Unicode字符串的支持,NSString和NSMutableString类最大的区别是:NSString--创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。NSMutableString--创建赋值以后可以动态在该字符串上更改内容与长度。下面是NSString和NSMutableString类的一些常用操作。
1.NSString 创建常量字符串。
NSString *str = @"我是一个字符串 -- This is a String!";
2.NSString 创建空字符,并赋值
NSString *str = [[NSString alloc] init];
str = @"www.babybus.com";
NSLog(@"str内容:%@",str);
[astring release];
NSString *str2 = [[NSString alloc] initWithString:@"www.babybus.com"];
NSLog(@"str2:%@",str2);
[str2 release]; //用标准c创建字符串:initWithCString方法
char *c_str = "www.babybus.com"
NSString *str3 = [[NSString alloc] initWithCString:c_str];
NSLog(@"str3:%@",str3);
[str3 release]; //创建格式化字符串:占位符
NSString *str4 = [[NSString alloc] initWithString:[NSString stringWithFormat:@"宝宝巴士拥有%d用户了",70000000]];
NSLog(@"str4:%@",str4);
[str4 release]; //从文件初始化字符串
NSString *path = [[NSBundlemainBundle] pathForResource:@"test" ofType:@"text"];
NSString *str = [[NSString alloc] initWithContentsOfFile:path];
NSLog(@"str:%@",str);
[str release];
3.NSString 内容写入文件
//获取Documents
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject];
//路径拼接
NSString *fielPath = [documentsPath stringByAppendingPathComponent:@"str.txt"]; NSString *str = [[NSString alloc] initWithString:@"www.babybus.com"];
NSLog(@"str:%@",str);
[str writeToFile:fielPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
[str release];
4.NSString 字符内容比较
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 isEqualToString:str_2];
if (result) {
NSLog(@"内容相同...");
}else {
NSLog(@"不好意思,内容不同");
}
//NSOrderedSame判断两者内容是否相同
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 compare:str_2] == NSOrderedSame;
NSLog(@"result:%d",result); //NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,str_2大于str_1为真)
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 compare:str_2] == NSOrderedAscending;
NSLog(@"result:%d",result); //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,str_2小于str_1为真)
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"www.babybus.com";
BOOL result = [str_1 compare:str_2] == NSOrderedDescending;
NSLog(@"result:%d",result);
5.NSString 不考虑大小写内容比较
NSString *str_1 = @"WWW.BABYBUS.COM";
NSString *str_2 = @"www.babybus.com";
//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。
BOOL result = [str_1 compare:str_2 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame;
NSLog(@"result:%d",result);
6.NSString 输出大写或者小写字符串
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"Good babybus";
NSLog(@"str_1:%@",[str_1 uppercaseString]);//大写
NSLog(@"str_2:%@",[str_2 lowercaseString]);//小写
NSLog(@"str_2:%@",[str_2 capitalizedString]);//首字母大小
7.NSString 查找字符串是否包含其它字符串
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = @"babybus";
NSRange range = [str_1 rangeOfString:str_2];
if (range.location != NSNotFound) {
NSLog(@"找到了%@",str_2);
}
8.NSString 截取字符串
//substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = [str_1 substringToIndex:3];
NSLog(@"string2--->:%@",str_2); //substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = [str_1 substringFromIndex:3];
NSLog(@"string2--->:%@",str_2); //substringWithRange: 按照所给出的位置,长度,任意地从字符串中截取子串
NSString *str_1 = @"www.babybus.com";
NSString *str_2 = [str_1 substringWithRange:NSMakeRange(0, 4)];
NSLog(@"string2--->:%@",str_2);
9.NSString 是否以某一字符串开头或者结尾
NSString *str = @"http://wwww.babybus.com";
if([String1 hasPrefix:@"http://"] == 1) {
NSLog(@"http://开头") ;
} if([String1 hasSuffix:@"com"] == 1) {
NSLog(@"com结尾") ;
}
10.NSString 获取后缀名
NSString *Path = @"User/SuperDo/string.txt";
NSLog(@"Extension:%@",[Path pathExtension]);
11.NSString 获取拓展路径
NSString *Path = @"User/SuperDo/str.txt";
NSString *absolutePath = [Path stringByExpandingTildeInPath];
NSLog(@"absolutePath:%@",absolutePath);
NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);
12. NSMutableString 字符串拼接
//末尾拼接
NSMutableString *str_1 = [[NSMutableString alloc] initWithString:@"www.babybus.com"];
[str_1 appendString:@",good"];
[str_1 appendFormat:@"go --------->"];
NSLog(@"String1:%@",str_1);
//在指定位置插入
NSMutableString *str = [[NSMutableString alloc] initWithString:@"www.babybus.com"];
[str insertString:@"Hi! " atIndex:0];
NSLog(@"str:%@",str);
13.NSMutableString 替换字符串
NSMutableString *str = [[NSMutableString alloc] initWithString:@"www.babybus.com is NSMutableString"];
[str replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];
NSLog(@"str:%@",str);

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4584355.html
[Objective-C] 007_Foundation框架之NSString与NSMutableString的更多相关文章
- OC中Foundation框架之NSString、NSMutableString
创建方式 )直接赋值 NSString *str =@"abc"; )创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@&q ...
- 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString
OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...
- Foundation框架-NSString和NSMutableString
可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式 2.3 从文件中 ...
- OC本学习笔记Foundation框架NSString与NSMutableString
一.NSString与NSMutableString 相信大家对NSString类都不陌生.它是OC中提供的字符串类.它的对象中的字符串都是不可变的,而它的子类NSMutable ...
- bjective-C 中核心处理字符串的类是 NSString 与 NSMutableString
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- 关于NSString和NSMutableString的相关用法和基本介绍
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- Objective - c Foundation 框架详解2
Objective - c Foundation 框架详解2 Collection Agency Cocoa provides a number of collection classes such ...
- NSString和NSMutableString常用方法+NSArray常用代码 (转)
常见的NSString和NSMutableString方法: NSString方法: [plain] view plaincopy +(id) stringWithContentsOfFile:p ...
- iOS基础-NSString及NSMutableString剖析
一.NSString头文件 NSString : NSObject 实现协议: NSCopying/NSMutableCopying/NSSecureCoding 类别: //扩展类别 NSStrin ...
随机推荐
- 进程间通信之socketpair
socketpair是进程间通信的一种方式. API: ]); DEMO: #include <stdio.h> #include <stdlib.h> #include &l ...
- bootstrap栅格系统的使用
bootstrap栅格系统的使用 bootstrap栅格系统的使用,主要分为四种方式 1.列组合 col-md-* 2.列偏移 col-md-offset-* 3.列嵌套 大列组合包含着小组合 4 ...
- 为什么要学习微信小程序直播开发?最新的小程序直播介绍和优势分析!
小程序直播的介绍 “小程序直播”是微信提供给开发者的实时视频直播工具,包括直播管理端.主播端和观众端等模块,支持提供常用的用户互动和营销促销工具. 开发者只需在小程序中引入相关代码并在管理后台完成配置 ...
- 实时(RTC)时钟,系统时钟和CPU时钟
最近在学stm32的时候看到RTC时钟和系统时钟,不知道区别在哪里,于是上网查了一下. 实时时钟:RTC时钟,用于提供年.月.日.时.分.秒和星期等的实时时间信息,由后备电池供电,当你晚上关闭系统和早 ...
- redis crackit入侵事件总结
今天发现服务器有异常进程/opt/yam/yam,上网搜了搜,是由于redis未授权引起的入侵,查了些资料,这里做下总结. 1. 现象 有以下其一现象就要注意是否被入侵 crontab -l 可以看到 ...
- STM32 时钟树配置快速入门
layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 为什么要了解时钟树? ...
- Git使用教程之新手也能看懂(一)
首先我写这篇文章的初衷是因为 有一段时间没用Git了,现在突然用起来,很多命令都忘记了,导致去上网查了各种资料和文档(其中廖雪峰老师的文章给我的帮助很大,非常感谢!),花费了大量的时间,等于是又重新学 ...
- PrintStream:打印流
package com.itheima.demo05.PrintStream; import java.io.FileNotFoundException; import java.io.PrintSt ...
- [Java画图]画函数图像
利用Graphics类画任意显式函数图像,只需修改代码中的F()函数即可,另外调整timesx和timesy参数来分方向放大或缩小图像.需要重定义坐标系. package test; import j ...
- [hdu5340]二分,枚举,二进制压位加速
题意:判断一个字符串能否划成三段非空回文串. 思路:先用二分+hash在nlogn的时间内求出以每条对称轴为中心的回文串的最大半径r[i](可以用对称的两个下标之和来表示 ),然后利用r[i]求出pr ...