字符串常用方法整理
Nsstring为不可变字符串,赋值后没有系统函数可以对其做任何改变
1、声明并初始化一个字符串
NSString * string = @”Hello”;
2、判断两个字符串是否相等,返回值为YES或NO
[string1
isEqualToString
:string2];
3、(1)比较大小返回值为1大于;为0等于;为-1小于
[string1
compare
:string2];
(2)忽略大小写比较两个字符串大小
[string1
caseInsensitiveCompare
:b];
4、将字符串中的小写字母转换成大写字母
[string1
uppercaseString
];
5、将字符串中的大写字母转换成小写字母
[string1
lowercaseString
];
6、将字符串的首字母大写其他字母小写
[string1
capitalizedString
];
7、将字符串string2在字符串string1中进行匹配
NSRange range = [string1
rangeOfString
:string2];
返回一个结构体,range.location是string2在string1中的位置,range.length是string2的长度,如果string1中有多个string2时只返回第一个的位置
8、截取从字符串开头到指定(长度)位置,组成一个新的字符串
[string1
substringToIndex
:6] 不包括第6位
9、从指定位置截取到最后,组成一个新的字符串
[string1
substringFromIndex
:6]包括第6位
10、从指定位置m开始截取指定个数n的字符
[string1
substringWithRange
:NSMakeRange(m,n)]包括第m位
可变字符串NSMutableString 不能对不可变字符串使用一下函数
1、定义可变字符串
NSMutableString *string =[[NSMutableString alloc]initWithString: @”abc”];
2、将C字符串转码位可变字符串
NSMutableString *string =[[NSMutableString alloc] initWithUTF8String:@”abc”];
3、修改字符串
[string1
setString
:@”abcdef”];
4、预设空间大小;会随着实际改变而改变;
str= [NSMutableString
stringWithCapacity
:3];
str.string= @”Hello World!”;
5、NSMutableString * str4 = [NSMutableString
stringWithString
:@”abc”];
6、追加字符串
[str4
appendString
:@”123”];
7、追加格式化字符串
int a = 5;
[str4
appendFormat
:@”a= %d”,a];
8、从指定位置开始插入字符串
[str4
insertString
:@”hello”atIndex:5];
9、删除字符
[str4
deleteCharactersInRange
:NSMakeRange(5,2)];//从第5位开始删除2个字符,后面的向前补
10、替换
[str4
replaceCharactersInrange
:NSMakeRange(5,2) withString: @”hello”];//从第5位开始的两个字符修改为@”hello”
11、设置为C的字符串
const char * p = str.
UTF8String
;
12、前缀后缀处理
NSString * str5 = @”hello world!”;
[str5
hasPrefix
:@”he”];//返回值为YES或NO查看str5是否以@”he”开头
[str5
hsaSuffix
:@”d!”];//返回值为YES或NO查看str5是否以@”d!”结尾
13、在objective-c中去掉字符串前后空格的方法(类似于C#中的trim方法)如下:
NSString *string = @" spaces in frontand at the end ";
NSString *trimmedString = [string
stringByTrimmingCharactersInSet
:
[NSCharacterSet
whitespaceAndNewlineCharacterSet
]];
NSLog(trimmedString);
14、取得整个文件file里面的内容 存在字符串中
NSString
*s = [
NSString
stringWithContentsOfFile
:file
encoding
:
NSUTF8StringEncoding
error
:
nil
];
15、字符串转化
NSString * str = @"hello";
const char *p = [str UTF8String];将OC字符串转化为C的字符串
str = @"123";
int a = [str intValue];//将数字串转化成整型数据
[str floatValue];//将数字串转化成float型
[str doubleValue];//将数字串转化成double型
[str doubleValue];//将数字串转化成double型
常用的NSString Message(OC 的字符 :typedef unsigned short unichar)
NSLog(@"%ld",[str1 length]); //求字符串长度
NSLog(@"%c", [str1 characterAtIndex:1]);//获取字符串中的字符
BOOL ret = [str1 isEqualTo:str2];//比较两个字符串是否相等,相等返回YES(1),不相等返回NO(0) (BOOL YES(1) NO(0))
long ret1 = [str1 compare:str2];//比较两个字符串的大小,str1大于 返回1 相等返回0 小于返回-1
long ret2 = [str1 caseInsensitiveCompare:str2];//不区分大小写比较字符串大小
NSString * ptr = [str2 uppercaseString];//将字符串中的所有小写字符转换成大写 不改变原来的字符串
ptr = [str1 lowercaseString];//将字符串中的所有大写字符转换成小写 不改变原来的字符串
ptr = [str3 capitalizedString];//将字符串中出现的第一个字母转换成大写,其余字母小写
NSString * str4 = @"hello world";
NSRange range = [str4 rangeOfString:@"wr"];//查找子串,找不到返回NSNotFound 找到返回location和length
if (range.location != NSNotFound) {
NSLog(@"%ld %ld",range.location, range.length);
}
NSString * str5 = @"helloworld";
NSString * ptr1 = [str5 substringToIndex:4];//字符串抽取 从下标0开始到4 不包括4
NSString * ptr2 = [str5 substringFromIndex:5];//从下标5开始抽取到字符串结束 包括5
NSRange range1 = {4,3};//结构体初始化
NSString * ptr3 = [str5 substringWithRange:range1];//在range指定范围内抽取
NSString * ptr4 = [str5 substringWithRange:NSMakeRange(4,3)];//NSMakeRange可以生成一个结构体
BOOL ret = [str hasPrefix:@"www"];//判断字符串是否以指定字符串开头
NSString * str1 = @"1.txt";
BOOL ret1 = [str hasSuffix:@".txt"];//判断字符串是否以指定的字符串结尾
NSMutableString可变字符串(动态增加和减少的) 继承于NSString可以使用NSString的所有方法
NSMutableString * str = [[NSMutableString alloc]initWithString:@"hello"];//将不可变的字符串转换为可变的字符串
[str insertString:@"123" atIndex:1];//在指定下标(不要越界)位置插入NSString类型字符串
[str appendString:@"123"];//在字符串末尾追加字符串
[str deleteCharactersInRange:NSMakeRange(0, 2)];//从指定下标删除length个字符
[str setString:@"qianfeng"];//修改字符串亦称对该可变字符串赋值
[str replaceCharactersInRange:NSMakeRange(3, 1) withString:@"ios"];//将指定下标位置的length个字符替换为指定的字符串