IOS NSString字符串操作

0、截取匹配到的某段字符:

            NSString *result=@<span style="font-family: Arial, Helvetica, sans-serif;">"partner=\"2088101568353491\"&seller_id=\"2088101568353491\"&out_trade_no=\"YR2VGG3G1I31XDZ\"&subject=\"1\"&body=\"</span><span class="s1" style="font-family: Arial, Helvetica, sans-serif;">我是测试数据</span><span style="font-family: Arial, Helvetica, sans-serif;">\"&total_fee=\"0.02\"¬ify_url=\"http://www.xxx.com\"&service=\"mobile.securitypay.pay\"&payment_type=\"1\"&_input_charset=\"utf-8\"&it_b_pay=\"30m\"&show_url=\"m.alipay.com\"&sign=\"GsSZgPloF1vn52XAItRAldwQAbzIgkDyByCxMfTZG%2FMapRoyrNIJo4U1LUGjHp6gdBZ7U8jA1kljLPqkeGv8MZigd3kH25V0UK3Jc3C94Ngxm5S%2Fz5QsNr6wnqNY9sx%2Bw6DqNdEQnnks7PKvvU0zgsynip50lAhJmflmfHvp%2Bgk%3D\"&sign_type=\"RSA\"" </span>
";
            NSRange range = [result rangeOfString:@"out_trade_no=\""];//匹配得到的下标
            NSRange range2 = [result rangeOfString:@"\"&subject"];
            range.location=range.location+range.length;
            range.length=range2.location-range.location;
            
            NSString *out_trade_no= [result substringWithRange:range];//截取范围类的字符串
            out_trade_no = [out_trade_no stringByReplacingOccurrencesOfString:@"\"" withString:@""];
            NSLog(@"截取的值为:%@",out_trade_no);
1、截取字符串
NSString*string =@"sdfsfsfsAdfsdf";
string = [string substringToIndex:7];//截取下标7之后的字符串
NSLog(@"截取的值为:%@",string);
[string substringFromIndex:2];//截取下标2之前的字符串
NSLog(@"截取的值为:%@",string);

2、匹配字符串
NSString*string =@"sdfsfsfsAdfsdf";
NSRange range = [stringrangeOfString:@"f"];//匹配得到的下标
NSLog(@"rang:%@",NSStringFromRange(range));
string = [string substringWithRange:range];//截取范围类的字符串
NSLog(@"截取的值为:%@",string);
对应Java中的  substring  函数。


3、分隔字符串

NSString*string =@"sdfsfsfsAdfsdf";

NSArray *array = [string componentsSeparatedByString:@"A"]; //从字符A中分隔成2个元素的数组
NSLog(@"array:%@",array); //结果是adfsfsfs和dfsdf

和  Java 中的  split 函数一样

String sourceStr = "1,2,3,4,5";
        String[] sourceStrArray = sourceStr.split(",");

4、判断字符串是否为空或者相同
1)判断是否是為空
   Str == nil || str.length == 0;
2)判断是否已指定的內容開頭
BOOL isPerfix = [str hasPrefix:@”xww”];
3)判断是否已指定的內容結尾
BOOL isSuffix = [str hasSuffix:@”xww”];
NSLog(@“%@”,is?@“YES”:@“NO”);

5、判断两个字符串是否相等
NSString *str4 = @“abc”;
NSString *str5 = @“abc”;
NSString *str6 = [NSString stringWithFormat:@“%@”,@“abc”];
1> 用if語句,==來判断,但是==的意思是內存地址相同,則判断就相同,str4和str5內存地址相同(運行時回去換存池中找,有相同的就直接拿過來,沒有就創建),和str6的內存地址不相同。
2> BOOL isEqual = [str5 isEauqlToString:str6];//先判断字符串的地址是否相同,如果相同,再判断字符串是否相等。

6、基本数据类型和字符串相互转化
基本数据类型(int、float、double、char)
1)基本类型转换成字符串
int a = 10;
[NSString stringWithForamt:@“%d”,a];
float f = 2.4 -> @“%.1f”
double d = 68.9999 -> @“%.4f”,d
char c = ‘c’ -> @“%c”,c

2)字符串转换成基本数据类型//floatValue、doubleValue、intValue
NSString *str = @“32432”;
int i = [str intValue];
//@“i234324”這个转换要注意,以上转换不了
3)將字符串中的字母转换成大寫
NSString *str = @“china”;
NSString *str1 = [str1 uppercaseString];
4)將字符串中的字母转换成小寫
NSString *str = @“china”;
NSString *str1 = [str1 lowercaseString];
5)將字符串的首字母转成大写
NSString *str = @“CHINA”;
NSString *str = [str capitalizedString];
7、多个数据拼接成一个字符串
        int year = 1988;
        int month = 4;
        int day = 15;
        NSString * date = [NSString stringWithFormat:@"%d年%d月%d日",year,month,day];
        NSLog(@"date %@",date);
        NSString * address = @"昌平区,金燕龙";
        NSString * dateAndAddrss = [NSString stringWithFormat:@"%@地址:%@",date,address];
        NSLog(@"dateAndAddress %@",dateAndAddrss);

8、使用新的字符,替换原有的字符
        NSString * str5 = @"www.itcast.cn";
        NSString * str6 = [str5 stringByReplacingOccurrencesOfString:@"w" withString:@"a"];
        NSLog(@"str6 %@",str6);
        //5.在字符串中删除特定的某些字符 胡汉三 hhs
        NSString * str7 = @"www---.itcatst.--cn";
        NSString * str8 = [str7 stringByReplacingOccurrencesOfString:@"-" withString:@""];
        NSLog(@"str8 %@",str8);
9、去掉字符串中的空格
        NSString * str9 = @"www  .itcat  .cn";
        NSString * str10 = [str9 stringByReplacingOccurrencesOfString:@" " withString:@""];
        NSLog(@"str10 %@",str10);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值