OC字符串

这篇博客详细介绍了在Objective-C中处理字符串的方法,包括NSString的初始化、格式化处理、截取、分割、拼接以及查询等功能。对于不可变字符串,讨论了如何使用stringWithFormat:进行拼接,并强调每次拼接都会生成新字符串。同时,文章还探讨了可变字符串的拼接、更改和删除特定部分的操作,揭示其与不可变字符串的区别。
摘要由CSDN通过智能技术生成
//
//  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);

输出结果:

程序员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值