Objective-C入门12:字符串
#import <Foundation/Foundation.h>
//结构体的关键字: struct
// 一个整体 : 由不同数据类型组成的一个整体
typedef struct Person
{
int age ;
char *name ;
}Person;
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Person peson ;
// peson.age = 20 ;
// peson.name = "蓝精灵" ;
//
// Person liuyong ;
// liuyong.age = 69 ;
// liuyong.name = "刘罗锅" ;
#pragma mark----------------字符串---可变字符串-------------------
// 字符串 可变字符串
// 字符串的初始化方式:
NSString *string = [[ NSString alloc ] init ];
NSString *string1 = [ NSString string ] ;
NSString *string2 = [ [ NSString alloc ] initWithString : string1 ] ;
NSString *string3 = @"..." ;
// 给字符串赋值:
string = @"11211" ;
#pragma mark----------------字符串的处理-------------------
// 字符串处理:
#pragma mark--------------一--字符串的 格式化处理-------------------
// 1、字符串的 格式化处理
int age = 20 ;
NSString *name = @"陈真" ;
NSString *inif = [ NSString stringWithFormat:@"%@今年%d" , name , age ] ;
NSLog( @"%@" , inif ) ;
// 2.截取 哪一个 位置 的 字符串
#pragma mark--------------二--截取字符串------------------------------------
#pragma mark--------------1--从哪个位置开始截取字符串-------------------
// 1.从哪个位置开始截取字符串
// Index 不是下标
NSString *newString = [ inif substringFromIndex:1 ] ;
NSLog( @"%@" , newString ) ;
// 练习
NSString *message = @"锄禾日当午,汗滴禾下土,。。。" ;
NSString *newString1 = [ message substringFromIndex:12 ] ;
NSLog( @"%@" , newString1 ) ;
#pragma mark--------------2--截取字符串到哪个位置-------------------
// 2.截取 字符串 到哪个 位置
NSString *newString2 = [ message substringToIndex:12 ] ;
NSLog(@"%@" , newString2 ) ;
NSString *newString3 = [ message substringToIndex:5 ] ;
NSLog(@"%@" , newString3 ) ;
#pragma mark--------------3--截取字符串从 哪 到 哪-------------------
// 3.截取 字符串 从 哪 到 哪
NSString *message1 = @"锄禾日当午,汗滴禾下土,。。。" ;
NSRange range ;
// 定义range结构体
range.location = 6;
// 在这个位置的基础之上 继续数几个长度
range.length = 5;
NSLog( @"%@" , [message1 substringWithRange : range ] ) ;
NSLog( @"%@" , [message1 substringWithRange : NSMakeRange(6, 5) ] ) ;
#pragma mark--------------三--分割字符串成数组------------------------------------
// 3. 把字符串 通过指定字符 分割成数组
NSString *message2 = @"锄禾日当午,汗滴禾下土,。。。" ;
NSArray *messageList = [ message2 componentsSeparatedByString : @"," ] ;
for ( NSString *obj in messageList ) {
NSLog( @"%@" , obj ) ;
}
NSString *result = @"武松打虎 duang!duang!duang! 老虎跑下山 ya~ya~ya~" ;
NSArray *list= [ result componentsSeparatedByString : @" " ] ;
NSLog( @"%@" , list[2] ) ;
#pragma mark--------------四--字符串的大小写转换------------------------------------
// 把所有英文 字母 转成 大写
NSString *str = @"bRuce" ;
NSLog(@"%@" , str.uppercaseString );
NSLog(@"%@" , [ str uppercaseString ] );
// 把所有英文 字母 转成 小写
NSLog(@"%@" , [ str lowercaseString ] );
// 把首 字母 转成 大写
NSLog(@"%@" , [ str capitalizedString ] );
#pragma mark--------------五--字符串的拼接------------------------------------
// 拼接 字符串
// 不可变字符串的拼接是在原来的字符串的基础上 在拼接一个字符串 生成另一个新的字符串
// 不可变字符串拼接德邦两个方法都会生成一个新的字符串
// 1. stringWithFormat 方式
// 2.
NSString *ss = @"我是" ;
NSString *bb = @"好人" ;
NSString *ssbb = [ ss stringByAppendingString : bb ] ;
NSLog( @"%@" , ssbb ) ;
// 3.
NSString *all = [ ss stringByAppendingFormat : inif ] ;
NSLog( @"%@" , all ) ;
#pragma mark--------------六--判断字符串是否包含某个字符串------------------------------------
// 判断字符串 是否 包含 某个字符串
NSString *sss = @"上山打老虎跑了" ;
NSRange range119 = [ sss rangeOfString:@"老虎11" ] ;
if( range119.location !=NSNotFound )
{
NSLog(@"%@", sss );
}
else
{
NSLog(@"骗人");
}
#pragma mark--------------七--字符串以什么开始--结束------------------------------------
// 字符串 以什么开始 (字符串的头部包含什么内容)
// 以什么结束
if ([sss hasPrefix : @"上山" ] != NO )
{
NSLog(@"存在");
}
else
{
NSLog(@"error") ;
}
if ([sss hasSuffix : @"跑了1" ] != NO )
{
NSLog(@"存在");
}
else
{
NSLog(@"error") ;
}
#pragma mark----------------可变字符串------------------------------------
// 可变字符串的(拼接)添加
// NSMutableString
// 可变字符串 是在原来字符串的基础之上 又添加了一个字符串 合成一个字符串(还是原来的字符串的对象)
NSMutableString *name11 = [ [ NSMutableString alloc ] initWithString : @"bruce" ] ;
NSRange range110 ;
range110.location = 1 ;
range110.length = 4 ;
// 替换
// 把指定位置的字符串替换成另一个字符串
[ name11 replaceCharactersInRange : range110 withString:@"lue" ] ;
NSLog( @"%@" , name11 ) ;
NSMutableString *ssss = [ [ NSMutableString alloc ] initWithString : @"我是一名程序员" ] ;
NSRange range111 ;
// range111.location = 4 ;
// range111.length = 3 ;
range111= NSMakeRange(4, 3) ;
[ ssss replaceCharactersInRange : range111 withString:@"医生" ] ;
NSLog( @"%@" , ssss ) ;
NSRange rrr ;
rrr.location = 4 ;
rrr.length = 3 ;
#pragma mark--------------八--删除指定字符串------------------------------------
// 删除指定 位置 长度 字符串
rrr.location = 0 ;
rrr.length = 4 ;
[ ssss deleteCharactersInRange:rrr ] ;
NSLog( @"%@" , ssss ) ;
}
return 0;
}