OC字符串
2015-10-06 15:53
246 查看
// // main.m // 字符串 // // Created by dingkang on 15/6/17. // Copyright (c) 2015年 丁康. All rights reserved. // #import <Foundation/Foundation.h> // 结构体的关键字 struct // 一个整体: 由不同数据类型组成的一个整体 typedef struct Person {int age; char *name; }Person; int main(int argc, const char * argv[]) { @autoreleasepool { Person person; person.age = 20; person.name = "蓝精灵"; Person liuYong; liuYong.age = 99; liuYong.name = "刘罗锅";
Cocoa中用来处理字符串的是NSString
字符串 可变字符串
字符串的初始化方式
NSString *string = [[NSString alloc]init]; NSString *string1 = [NSString string]; NSString *string2 = [[NSString alloc]initWithString:string1]; NSString *string3 = @"..."; // 给字符串赋值 string = @"11111";
字符串的处理
1、字符串的 格式化处理(格式化字符串)
int age = 20; NSString *name = @"陈真"; NSString *info = [NSString stringWithFormat:@"%@今年%d",name,age]; NSLog(@"%@",info);
输出结果:
陈真今年20
截取哪一个位置的字符串
2、从哪个位置 开始截取字符串
Index不是下标 所以不是从0开始 (从第2个字后面开始截取字符串 截取前:陈真今年20)
NSString *newString = [info substringFromIndex:2]; NSLog(@"%@",newString);
输出结果:
今年20
3、截取 字符串到 哪个位置
NSString *message = @"锄禾日当午,汗滴禾下土,。。。"; //从index 12 处开始截取 到结束 NSString *String = [message substringFromIndex:12]; NSLog(@"%@",String); //从开头截取到 index 为12处 NSLog(@"%@",[message substringToIndex:12]); //从开头截取到 index为5处 NSLog(@"%@",[message substringToIndex:5]);
输出结果:
。。。 锄禾日当午,汗滴禾下土, 锄禾日当午
4.截取字符串从哪儿到哪儿
NSRange range; // 定义结构体的位置 range.location = 6; // 在这个位置的基础之上 继续数几个长度 range.length = 5; // 从index 为6处开始 向后截取 5 个长度 NSLog(@"%@",[message substringWithRange:range]); NSRange range1; range1.location = 5; range1.length = 7; // 从index 为5处开始 向后截取 7 个长度 NSLog(@"%@",[message substringWithRange:range1]);
输出结果:
汗滴禾下土 ,汗滴禾下土,
5、 把字符串 通过指定字符 分割成数组
NSString *result = @"武松打虎duang!duang!duang! 老虎跑下山 ya~ya~ya"; //将上面字符串按照 空格 分割成数组 NSArray *resultList = [result componentsSeparatedByString:@" "]; //遍历数组 输出遍历后的内容 for (NSString *an in resultList) { NSLog(@"%@",an); }
输出结果:
武松打虎duang!duang!duang! 老虎跑下山 ya~ya~ya
6、英文字符的操作
// 把所有英文字母 转成大写 NSString *str = @"bLuebuff"; NSLog(@"%@",str.uppercaseString); // 把所有英文字母转换成小写 NSLog(@"%@",str.lowercaseString); // 首字母大写 NSLog(@"%@",str.capitalizedString);
输出结果:
BLUEBUFF bluebuff Bluebuff
7、拼接字符串
1.stringWithFormat:
不可变字符串的拼接,是在原来的基础上是 在拼接一个字符串 生成另外一个新的字符串
不可变字符串 字符串拼接的两个方法 都会生成一个新的字符串
NSString *ss = @"我是"; NSString *ss1 = @"好人"; NSString *all = [ss stringByAppendingString:ss1]; NSLog(@"%@",all); NSLog(@"%@",[ss stringByAppendingFormat:@"%@不可能",ss1]);
输出结果:
我是好人 我是好人不可能
8、查询字符串
判断字符串 是否包含某个字符串
NSString *sss = @"上山打老虎跑了"; NSString *string = @"老虎"; NSRange range3 = [sss rangeOfString:@"老虎"]; // range3 相当于 [sss rangeOfString:string] if ([sss rangeOfString:string].location != NSNotFound) { NSLog(@"%@",sss); }else{ NSLog(@"骗人~~~"); } if (range3.location == NSNotFound) { NSLog(@"%@",sss); }else{ NSLog(@"骗人~~~"); }
输出结果:
上山打老虎跑了 骗人~~~
9.查询字符串以什么开头(头部包含什么内容)
以什么结尾(尾部包含什么内容)
NSString *sss = @"上山打老虎跑了"; // 开头 (Prefix 前缀) if ([sss hasPrefix:@"上山"] != NO) { NSLog(@"存在"); }else{ NSLog(@"错误"); } // 结尾 (Suffix 后缀) if ([sss hasSuffix:@"老虎跑了"]!= NO) { NSLog(@"存在"); }else{ NSLog(@"错误"); }
输出结果:
存在 存在
10、可变字符串的拼接
在原来字符串的基础上 又添加了一个字符串 与原来的字符串 合成一个字符串 (还是原来字符串的对象)
NSMutableString *ant = [NSMutableString stringWithString:@"qqq"]; [ant appendString:@"111"]; NSLog(@"%@",ant);
输出结果:
qqq111
11、可变字符串的更改
把指定位置的字符串 替换成另外一个字符串
NSMutableString *name1 = [[NSMutableString alloc]initWithString:@"bruce"]; NSLog(@"替换前:%@",name1); NSRange range110; range110.location = 1; range110.length = 4; //把"bruce"这个字符串的 index为1开始4个长度这段字符串替换成 "lue" [name1 replaceCharactersInRange:range110 withString:@"lue"]; NSLog(@"替换后:%@",name1);
输出结果:
替换前:bruce 替换后:blue
12、删除指定位置的字符串
NSMutableString *ssss = [NSMutableString stringWithString:@"我是一名程序员"]; NSRange range119; range119.location = 0; range119.length = 4; //删除ssss这个字符串 的index从0开始4个长度的字符串 也就是 "我是一名" [ssss deleteCharactersInRange:range119]; NSLog(@"%@",ssss);
输出结果:
程序员
相关文章推荐
- 事件委托
- Jsp的定义及作用还有声明
- Linux下Tomcat的启动、关闭、杀死进程
- hello.cpp:1:24: fatal error: QApplication: No such file or directory
- Swift学习笔记17——可选链(Optional Chaining)
- 在有TabHost控件的页面,解决onKeyDown方法不能拦截KeyEvent.KEYCODE_BACK事件
- C++文件操作详解(ifstream、ofstream、fstream)
- iOS软件开发 如何做一个选择器
- HDU ACM 4578 Transformation->段树-间隔的变化
- Ubuntu和windows文件传输共享
- python学习笔记1---关键元素1
- matlab 贝叶斯网络工具箱的安装
- linux解压war包的命令
- Hibernate:Disjunction&Conjunction构造复杂的查询条件.
- RPC通信编程
- Hibernate:Disjunction&Conjunction构造复杂的查询条件.
- Java字符串详解
- 推荐几本书(.net)
- Hibernate 调用原生态Sql语句和存储过程
- UVA_10391: Compound Words