黑马程序员——OC语言日志——NSString字符串的截取、替换,数据类型转换等一些用法

本文介绍了Objective-C中NSString的一些常见操作,包括字符串的截取(如substringFromIndex、substringToIndex、substringWithRange)、替换字符串(使用stringByReplacingOccurrencesOfString方法)、数字与字符串之间的转换(intValue、floatValue、doubleValue)以及如何进行C字符串与OC字符串的相互转换。此外,还提及了去除字符串首尾空格的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

今天来总结一下NSString一些常见的用法。

1、字符串的截取

从xx位置开始,到最后结束,包括xx:

substringFromIndex:  XX     

 从开始位置到指定位置xx,不包括xx:  

substringToIndex: XX

按rang变量内容截取一个范围

substringWithRange:rang

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       NSString *str = @"http://www.baidu.com";
        //从xx位置开始,到最后结束,包括xx
        NSString *str1 = [str substringFromIndex:5];
         NSLog(@"str3=%@",str1);
        //从开始位置到指定位置xx,不包括xx
        NSString *str2 = [str substringToIndex:5];
         NSLog(@"str3=%@",str2);
        //截取一个范围
        NSRange r1 = {5,6};
        NSString *str3 = [str substringWithRange:r1];
        NSLog(@"str3=%@",str3);
        
    }
    return 0;
}
打印:  str3=//www.baidu.com
 str3=http:
str3=//www.

再看一个例子:将“传智博客”截取出来

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
     /*  NSString *str = @"http://www.baidu.com";
        //从xx位置开始,到最后结束,包括xx
        NSString *str1 = [str substringFromIndex:5];
         NSLog(@"str3=%@",str1);
        //从开始位置到指定位置xx,不包括xx
        NSString *str2 = [str substringToIndex:5];
         NSLog(@"str3=%@",str2);
        //截取一个范围
        NSRange r1 = {5,6};
        NSString *str3 = [str substringWithRange:r1];
        NSLog(@"str3=%@",str3);*/
        NSString *str = @"<itcast>传智播客</itcast>";
        //> 的location+1
        //</的location
        NSUInteger loc1 = [str rangeOfString:@">"].location+1;
        NSUInteger len = [str rangeOfString:@"</"].location-loc1;
        NSRange r = {loc1,len};
        //截取,使用substringWithRange方法
        NSString *subStr = [str substringWithRange:r];
        NSLog(@"subStr=%@",subStr);
        
        
    }
    return 0;
}
2、字符串的替换

将字符串中的A替换为B

stringByReplacingOccurrencesOfString:A withString:B

举例:@"dhfuhhahfijfaihfhadhufafjigaga"      将字符串中的a替换为*

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       //@"dhfuhhahfijfaihfhadhufafjigaga"
        //将字符串中的a替换为*
        NSString *str=@"dhfuhhahfijfaihfhadhufafjigaga";
        //使用stringByReplacingOccurrencesOfString:withString:方法
        NSString *str2=[str stringByReplacingOccurrencesOfString:@"a" withString:@"*"];
        NSLog(@"str2=%@",str2);
    }
    return 0;
}
打印:str2=dhfuhh*hfijf*ihfh*dhuf*fjig*g*
3、获取字符串中某个字符
 用- (unichar)characterAtIndex:(NSUInteger)index;方法
index为要获取字符的位置

4、字符串和其他数据类型转换, 用下面三个函数可以将字符中 数字转换为相应基本数据类型

intValue     转换为int类型

floatValue   转换为float类型

doubleValue  转换为double类型
5、OC的字符串和C的字符串相互转换
stringWithUTF8String:    C->OC
UTF8String                       OC->C
6、去除字符串中首尾空格
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]

代码实现上述函数:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str=@"abcdefg";
        //(1)获取字符串中某个字符。characterAtIndex:
        unichar getc = [str characterAtIndex:3];
        NSLog(@"getc=%c",getc);
        //(2)字符串和其他数据类型转换
        NSString *str1=@"1";
        NSString *str2=@"3.14";
        int a =7;
        //将“1”转换为int类型的1
        int sum =a+[str1 intValue];
        NSLog(@"sum=%d",sum);
        //将“3.14”转换为float类型的
        float sum1=a+[str2 floatValue];
        NSLog(@"sum2=%.2f",sum1);
        //将“3.14”转换为double类型的
        double sum2=a+[str2 doubleValue];
        NSLog(@"sum3=%.2f",sum2);
        //(3)OC的字符串和C的字符串相互转换
        //1)C->OC
        char *cs="ChangsuMei";
        NSString *ocs = [NSString stringWithUTF8String:cs];
        NSLog(@"ocs=%@",ocs);
        //2)OC->C
        NSString *ocs1=@"LangYaBang";
        const char *cs1 = [ocs1 UTF8String];
        printf("cs1=%s\n",cs1);
        //(4)NSString去除首尾空格
        NSString *str3 = @" Hello FeiLiu! ";
        str3 = [str3 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
        NSLog(@"---%@----",str3);
        
    }
    return 0;
}
打印: getc=d
      sum=8
      sum2=10.14
      sum3=10.14
      ocs=ChangsuMei
      cs1=LangYaBang
      ---Hello FeiLiu!----






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值