首页 > 其他分享 >ios开发之--NSString的操作

ios开发之--NSString的操作

时间:2023-08-22 11:42:29浏览次数:30  
标签:compare -- ios NSLog range NSString str 字符串

NSString的操作,下面记录下他的常用方法:

 

NSString *str = @"1111111111aaaaaaaaa2222222222";

 

1、查找

//查找
    NSRange range = [str rangeOfString:@"aaa"];
    if (range.location == NSNotFound) {
        NSLog(@"str中没有找到aaa");
    }else{
        NSLog(@"str中包含");
    }
    //另一种方法
    if (range.length == 0) {
        NSLog(@"str中没有找到aaa");
    }else{
        NSLog(@"str中包含");
    }

比较的方法:

[value compare:(NSString *)];

[value compare:(NSString *) options:(NSStringCompareOptions)];

[value compare:(NSString *) options:(NSStringCompareOptions) range:(NSRange)];

这里说下options属性,这个是个枚举,如下:

enum{

    NSCaseInsensitiveSearch = 1,//不区分大小写比较

    NSLiteralSearch = 2,//区分大小写比较

    NSBackwardsSearch = 4,//从字符串末尾开始搜索

    NSAnchoredSearch = 8,//搜索限制范围的字符串

    NSNumbericSearch = 64//按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt

//以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用

    NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符号的比较

    NSWidthInsensitiveSearch = 256,//忽略字符串的长度,比较出结果

    NSForcedOrderingSearch = 512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending

//以下定义高于 iphone 3.2 可用
    NSRegularExpressionSearch = 1024//只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch

}

返回值:

返回值:

typedef enum _NSComparisonResult {
     NSOrderedAscending = -1,    // < 升序
     NSOrderedSame,              // = 等于
     NSOrderedDescending   // > 降序
} NSComparisonResult;

使用如下:

BOOL result;
 result = [str compare:@"444"];
 [str compare:@"333" options:NSCaseInsensitiveSearch];
 [str compare:@"555" options:NSLiteralSearch range:range];

 

2、截取操作

//截取字符串
    //截取,loc标示第几个字符开始,len标示截取两个字符
    NSString *bStr = [str substringWithRange:NSMakeRange(0, 2)];
    NSLog(@"%@",bStr);
    //从第n+1为开始截取,至字符串最后
    NSString *bStr1 = [str substringFromIndex:0];
    NSLog(@"%@",bStr1);
    //从首字母开始截取第n个字符
    NSString *bStr2 = [str substringToIndex:3];
    NSLog(@"%@",bStr2);

3、拆分

//拆分
    //从字符串8中分割成2个元素的数组  这个方法可以实现字符串和数组直接互转
    NSArray *array = [str componentsSeparatedByString:@"8"];
    NSLog(@"array:%@",array);
    NSLog(@"ary1 is %@",[array firstObject]);
    NSLog(@"ary2 is %@",[array lastObject]);

4、替换

NSString *str1 = @"123456789";
    NSString *replacedStr = [str1 stringByReplacingOccurrencesOfString:@"345" withString:@"想要替换成字符串"];
    NSLog(@"erplacedStr === %@",replacedStr);

5、插入

//插入  只能对可变字符串操作,下面insert方法,依次是原字符串,插入的字符,插入的位置
    NSMutableString *currentStr = [NSMutableString stringWithFormat:@"%@",@"豫A88888"];
    NSMutableString *insertStr = [[NSMutableString alloc]initWithString:@"-"];
    [currentStr insertString:insertStr atIndex:2];
    NSLog(@"currentstr is %@",currentStr);

6、验证

//验证,包含的前标和后标
    NSString *str2 = @"http:www.baidu.com";
    BOOL a = [str2 hasPrefix:@"http"];//前缀
    BOOL b = [str2 hasSuffix:@"com"];//后缀
    NSLog(@"a===%@,b===%@",a ?@"YES":@"NO",b ?@"YES":@"NO");

7、大小写互转

//改变字符串的大小写
    NSString *str3 = @"zhengXZHOU";
    NSString *da = [str3 uppercaseString];//转成大写
    NSString *xiao = [str3 lowercaseString];//转成小写
    NSString *shouDa = [str3 capitalizedString];//首字母大写,其余小写
    NSLog(@"\n%@\n%@\n%@",da,xiao,shouDa);

8、编码   解码

//编码   解码
    //编码
    NSString *hStr = @"你好啊";
    NSString *uniStr = [NSString stringWithUTF8String:[hStr UTF8String]];
    NSData *uniData = [uniStr dataUsingEncoding:NSNonLossyASCIIStringEncoding];
    NSString *goodStr = [[NSString alloc] initWithData:uniData encoding:NSUTF8StringEncoding] ;
    NSLog(@"goodstr is %@",goodStr);
    
    //解码
    const char *jsonstr = [goodStr UTF8String];
    NSData *jsonData = [NSData dataWithBytes:jsonstr length:strlen(jsonstr)];
    NSString *goodMsg = [[NSString alloc]initWithData:jsonData encoding:NSNonLossyASCIIStringEncoding];
    NSLog(@"goodmsg is %@",goodMsg);

 

下面附上相应的打印:

ios开发之--NSString的操作_大小写

仅做记录!


作者:稻草人11223

标签:compare,--,ios,NSLog,range,NSString,str,字符串
From: https://blog.51cto.com/u_13188203/7187407

相关文章

  • iOS开发之--Masonry多个平均布局
    使用Masonry平均布局,代码如下:其实就是用Masonry提供的两个方法,如下:/***distributewithfixedspacing**@paramaxisType横排还是竖排*@paramfixedSpacing两个控件间隔*@paramleadSpacing第一个控件与边缘的间隔*@paramtailSpa......
  • ios开发之--条用第三方地图路线导航
    项目里面有位置功能,需要有导航,导航两种实现方式(集成第三方SDK、URL跳转第三方应用),直接集成就不说,下面来说下通过url跳转,最终效果如如下:  如果手机上安装的有客户端就展示,没有就不展示,文档上面写的很详细的,具体地址如下:高德地图:https://lbs.amap.com/api/amap-mobile/guide/io......
  • ios开发之--WKWebView的使用
    WKWebView是ios8出来的,是为了解决UIWebView卡慢,占用内存过大的问题。在以往时候,如果用UIWebView加载加载网页的时候,卡慢现象会很严重,有时候往往会卡到一个页面无法动弹,空白屏时间过长,基本上没有什么体验可言;WebKit中的WKWebView控件的新特性和使用方法,较好的解决了卡、慢、占用内......
  • ios开发之--数组的一些操作
    1,创建数组NSMutableArray*array=[[NSMutableArrayalloc]initWithObjects:@"a",@"b",@"c",nil];NSMutableArray*array1=[NSMutableArrayarrayWithObjects:@"a",@"b",@"c",nil];NSArray*array2=@......
  • ios开发之--tableview刷新某一个区和某一行
    在开发中,有时候,我们不需要刷新整个表,只需要刷新局部数据即可,具体代码如下://section刷新NSIndexSet*indexSet=[[NSIndexSetalloc]initWithIndex:2];[tableviewreloadSections:indexSetwithRowAnimation:UITableViewRowAnimationAutomatic];//cell刷新NSInde......
  • iOS开发之-- 字符串的操作,去掉某一个字符或者替换成其他字符
    一个简单的操作,记录下:NSString*strUrl=[urlStringstringByReplacingOccurrencesOfString:@""withString:@""];去掉空格NSString*strUrl=[urlStringstringByReplacingOccurrencesOfString:@""withString:@"/"];替换字符 仅做记录!作者:稻草人11......
  • ios开发之--首页 导航栏隐藏 下一级页面显示,pop回来显示白条
    解决方法,在首页中实现如下两个方法,代码如下:-(void)viewWillDisappear:(BOOL)animated{[superviewWillDisappear:animated];[self.navigationControllersetNavigationBarHidden:NOanimated:NO];}-(void)viewWillAppear:(BOOL)animated{[superviewWillAppear......
  • ios开发之--新手引导页图片适配方案
    1,图片适配,最早以前是自己命名规范,例如@1x,@2x,@3x等,3套图基本上就够用了2,在iPhoneX之后,需要适配的图就多了,因为分辨率增多了,屏幕尺寸也增多了3,尺寸:640*960,640*1136,750*1334,1242*2208,1125*24364,方案:a、判断,代码如下:#defineIS_IPHONE4([UIScreenmainScreen].bounds.size.height<56......
  • ios开发之--UIButton中imageView和titleLabel的位置调整
    在使用UIButton时,有时候需要调整按钮内部的imageView和titleLabel的位置和尺寸。在默认情况下,按钮内部的imageView和titleLabel的显示效果是图片在左文字在右,然后两者紧挨在一起构成组合居中显示。如下图:我们可以使用setImageEdgeInsets:和setTitleEdgeInsets:方法来调整两者的位置......
  • ios开发之 -- NSString指定字体高亮显示
    一个简单的小需求,就是在一个字符串里面,指定一部分字节高亮显示,代码如下:NSString*descStr=@"需要高亮显示的字符";NSString*nickStr=[NSStringstringWithFormat:@"%@%@",@"这里是高亮显示以外的字符",descStr];NSMutableAttributedString*attrStr=[[NSMutabl......