一、NSString的几种主要方法的使用
//
// main.m
// NSString_01
//
// Created by mac on 15-4-22.
// Copyright (c) 2015年 mac. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
char *p = "Hello world!";
NSString *str = @"Hello world!";
__unused int a = 10;
__unused long b =10;
__unused NSInteger c = 10;
NSLog(@"length is %zd",str.length);
NSString *str1 = [[NSString alloc] initWithCString:p encoding:NSUTF8StringEncoding];
NSLog(@"str1 is %@",str1);
// NSString 转化为 char
__unused const char *p1 = [str1 UTF8String];
NSLog(@"p1 is %s",p1);
// 格式化输出
const char *p2 = "QF";
NSInteger a1 = 10;
CGFloat b1 = 1.01;
NSString *str3 = [[NSString alloc] initWithFormat:@"%s%zd%.2f",p2,a1,b1];
NSString *str4 = [NSString stringWithFormat:@"%s%zd%.2f",p2,a1,b1];
NSLog(@"格式化输出:%@ %@",str3,str4);
NSString *str5 = @"Hello";
NSString *str6 = @"World!";
// 字符串追加
NSString *str7 = [str5 stringByAppendingString:str6];
NSString *str8 = [NSString stringWithFormat:@"%@%@",str5,str6];
NSLog(@"str7 is %@,str8 is %@",str7,str8);
// 字符串中是否包含某一个前缀或者后缀
// str7字符串的头部是否存在字符 He
BOOL ret = [str7 hasPrefix:@"He"];
if(ret){
NSLog(@"str7 字符串头部存在字符 He");
}else{
NSLog(@"不存在...");
}
// str7字符串尾部是否存在字符 World!
BOOL ret1 = [str7 hasSuffix:@"World!"];
if(ret1){
NSLog(@"str7 字符串尾部存在字符 World!");
}else{
NSLog(@"不存在...");
}
// 字符串比较
NSString *str9 = @"welcome to qf";
NSString *str10 = @"Hello worlf";
/*
compare:比较后的返回值
NSOrderedAscending 升序
NSOrderedSame 相当
NSOrderedDescending 降序
*/
// 从左往右一个一个字符串比较 直到出现ASCII不相等的情况立即返回比较结果
NSInteger ret3 = [str9 compare:str10];
if(ret3 == NSOrderedAscending){
NSLog(@"str9 小于 str10");
}else if(ret3 == NSOrderedSame){
NSLog(@"str9 等于 str10");
}else{
NSLog(@"str9 大于 str10");
}
// 字符串内容的比较
if([str9 isEqualToString:str10]){
NSLog(@"str9 与 str10相等");
}else{
NSLog(@"str9 与 str10不相等");
}
NSString *str11 = @"enter your";
NSString *str12 = @"please enter your password!";
/*
rangeOfString 的返回值 NSRange
typedef struct _NSRange {
NSUInteger location; 位置 起始字符在当前查找字符串中处于第几个字符
NSUInteger length; 长度 从被查找到的位置开始计算的字符串长度
} NSRange;
*/
// str2中查找str11的字符 返回第一个出现str11字符的位置和长度
NSRange range = [str12 rangeOfString:str11];
// 判断这个字符串对象是否被找到写法
if(range.location != NSNotFound && range.length != 0){
NSLog(@">>%zd %zd",range.location,range.length);
}else{
NSLog(@"没有找到该类型的商品!");
}
// 字符串提取
// 指定位置开始一直读取到字符串的末尾
// index 不能超过str12.length
NSString *str13 = [str12 substringFromIndex:18];
NSLog(@"str13 is %@",str13);
// 要求截取到enter之后
// 指定一个index 从字符串的开始一直截取到index位置止
NSString *str14 = [str12 substringToIndex:12];
NSLog(@"str14 is %@",str14);
// 从str12中提取enter your
NSString *str15 = [str12 substringWithRange:[str12 rangeOfString:@"enter your"]];
NSLog(@"str15 is %@",str15);
// 分割字符串 分割后的结果会保存在数组中
// 参数:使用指定参数的字符串分割该字符串对象
NSArray *arr = [str12 componentsSeparatedByString:@" "];
NSLog(@"arr is %@ %@ %@ %@ %@",arr,arr[0],arr[1],arr[2],arr[3]);
// NSString 基本数据类型的转化
NSString *str16 = @"100";
NSInteger i = [str16 integerValue];
NSLog(@"i is %zd",i);
//遍历字符串
NSString *str17 = @"componentsSeparatedByString:";
for (int i=0;i<str17.length;i++){
//NSString *myChar = [str17 substringWithRange:NSMakeRange(i, 1)];
//NSLog(@"%@",myChar);
// 返回char类型字符
char myChar = [str17 characterAtIndex:i];
NSLog(@"%c",myChar);
}
}
return 0;
}
二、NSMutableString类的几种主要方法的使用
//
// main.m
// NSMutableString_01
//
// Created by mac on 15-4-22.
// Copyright (c) 2015年 mac. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
#if 0
// 不可变字符串 NSString
// 可变字符串 继承自NSString 可以使用NSString的所有方法
__unused NSMutableString *str1 = [[NSMutableString alloc] init];
__unused NSMutableString *str2 = [[NSMutableString alloc]initWithString:@"wahaha"];
__unused NSMutableString *str3 = [NSMutableString string];
// 可变字符串特有方法
// 在原来的字符串基础上追加字符串
[str2 appendString:@"test"];
NSLog(@"str2 is %@",str2);
NSString *str4 = @"wahaha";
// 在指定的字符串后追加字符串 生成一个新的字符串对象 原字符串没有变化
NSString *str5 = [str4 stringByAppendingString:@"test"];
NSLog(@">>%@ %@",str4,str5);
// 删除前两个字符
[str2 deleteCharactersInRange:NSMakeRange(0, 2)];
NSLog(@"%@",str2);
// 修改
// 参数1:替换的字符串范围 参数2:需要替换的字符串
// hahawatest
[str2 replaceCharactersInRange:NSMakeRange(4, 0) withString:@"wa"];
NSLog(@"str2 is %@",str2);
// 插入 在指定的index位置 插入string
[str2 insertString:@" " atIndex:4];
NSLog(@"str2 is %@",str2);
#else
// 5.Welcome to Qianfeng 删除to这个词
NSMutableString *str1 = [[NSMutableString alloc] initWithString:@"Welcome to Qianfeng"];
[str1 deleteCharactersInRange:NSMakeRange(8, 3)];
NSLog(@"%@",str1);
//6.Hello world 两个单词间插入qianfeng
NSMutableString *str2 = [[NSMutableString alloc] initWithString:@"Hello world"];
[str2 insertString:@"qianfeng " atIndex:6];
NSLog(@"str2 is %@",str2);
// 7.现有字符串@“When I was young,I loved a girl on neighbor class. ”从young到girl 改成@“teacher,I rather teaching the students”
NSMutableString *str3 = [[NSMutableString alloc]initWithString:@"When I was young,I loved a girl on neighbor class."];
NSMutableString *str4 = [[NSMutableString alloc]initWithString:@"teacher,I rather teaching the students"];
NSRange r1 = [str3 rangeOfString:@"young"];
NSRange r2 = [str3 rangeOfString:@"girl"];
[str3 replaceCharactersInRange:NSMakeRange(r1.location, r2.location - r1.location + 4) withString:str4];
NSLog(@"str3 is %@",str3);
#endif
}
return 0;
}