//
// 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);
输出结果:
程序员