您的位置:首页 > 其它

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);


输出结果:

程序员
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: