zoukankan      html  css  js  c++  java
  • Objective-C 笔记 字符串操作

      这次总结下OC里一些对字符串的一些操作。

      创建字符串对象时,会创建一个内容不可更改的对象,称为不可变对象。可以使用NSString类处理不可变字符串。你经常需要处理字符串并更改字符串中的字符。例如,可能希望从字符串中删除一些字符,或对字符串执行搜索替换操作。这种类型的字符串是使用NSMutableString类处理的。

     1 //
     2 //  main.m
     3 //  Number_String_List_15
     4 //
     5 //  Created by SeanAstin on 15/12/30.
     6 //  Copyright © 2015年 SeanAstin. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13         NSString *str1 = @"This is string A";
    14         NSString *str2 = @"This is string B";
    15         NSString *res;
    16         NSComparisonResult  compareResult;
    17         
    18         //计算字符串中的值
    19         NSLog(@"Length of str1: %lu",[str1 length]);
    20         
    21         //将一个字符串复制到另一个字符串
    22         res = [NSString stringWithString:str1];
    23         NSLog(@"copy: %@",res);
    24         
    25         //将一个字符串复制到另一个字符串的末尾
    26         str2 = [str1 stringByAppendingString:str1];
    27         NSLog(@"Concatentation: %@",str2);
    28         
    29         //验证两个字符串是否相等
    30         if([str1 isEqualToString:res] == YES)
    31             NSLog(@"str1 == res");
    32         else
    33             NSLog(@"str1 != res");
    34         
    35         //验证一个字符串是否小于、等于或大于另一个字符串
    36         compareResult = [str1 compare:str2];
    37         if(compareResult ==  NSOrderedAscending)
    38             NSLog(@"str1 < str2");
    39         else if(compareResult == NSOrderedSame)
    40             NSLog(@"str1 == str2");
    41         else//必须是NSorderedDescending
    42             NSLog(@"str1 > str2");
    43         
    44         //将字符串转换为大写
    45         res = [str1 uppercaseString];
    46         NSLog(@"Uppercase conversion: %s",[res UTF8String]);
    47         
    48         //将字符串转换为小写
    49         res = [str1 lowercaseString];
    50         NSLog(@"Lowercase conversion: %@",res);
    51     }
    52     return 0;
    53 }
     1 //
     2 //  main.m
     3 //  Number_String_List_15
     4 //
     5 //  Created by SeanAstin on 15/12/30.
     6 //  Copyright © 2015年 SeanAstin. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13         NSString *str1 = @"This is string A";
    14         NSString *str2 = @"This is string B";
    15         NSString *res;
    16         NSRange subRange;
    17         
    18         //从字符串中提取前3个字符
    19         res = [str1 substringToIndex:3];
    20         NSLog(@"First 3 chars of str1: %@",res);
    21         
    22         //提取从索引5开始直到结尾的子字符串
    23         res = [str1 substringFromIndex:5];
    24         NSLog(@"Chars from index 5 of str1: %@",res);
    25         
    26         //提取从索引8开始索引到13的子字符串(6个字符)
    27         res = [[str1 substringFromIndex:8] substringToIndex:6];
    28         NSLog(@"Chars from index 8 through 13: %@",res);
    29         
    30         //更简单的方法
    31         res = [str1 substringWithRange:NSMakeRange(8, 6)];
    32         NSLog(@"Chars from index 8 through 13: %@",res);
    33         
    34         //从另一个字符串中查找一个字符串
    35         subRange = [str1 rangeOfString:@"string A"];
    36         NSLog(@"String is at index %lu, length is %lu",subRange.location,subRange.length);
    37         subRange = [str1 rangeOfString:@"string B"];
    38         if(subRange.location == NSNotFound)
    39             NSLog(@"String not found");
    40         else
    41             NSLog(@"String is at index %lu, length is %lu",subRange.location,subRange.length);
    42         
    43     }
    44     return 0;
    45 }

      NSMutableString类可以用来创建可以更改字符的字符串对象。因为是 NSString类的子类,所以可以使用NSString类的所有方法。

      在讲述可变于不可变字符串对象时,我们谈到了更改字符串中的实际字符。任意一个可变或不可变字符串对象在程序执行期间,总是可以被设为完全不同的字符串对象的。

     1 //
     2 //  main.m
     3 //  Number_String_List_15
     4 //
     5 //  Created by SeanAstin on 15/12/30.
     6 //  Copyright © 2015年 SeanAstin. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13         NSString *str1 = @"This is string A";
    14         NSString *search,*replace;
    15         NSMutableString *mstr;
    16         NSRange substr;
    17         
    18         //从不可变字符串创建可变字符串
    19         
    20         mstr = [NSMutableString stringWithString:str1];
    21         NSLog(@"%@",mstr);
    22         
    23         //插入字符
    24         [mstr insertString: @" mutable" atIndex:7];
    25         NSLog(@"%@",mstr);
    26         
    27         //插入末尾进行有效拼接
    28         [mstr insertString:@" and string B" atIndex:[mstr length]];
    29         NSLog(@"%@",mstr);
    30         
    31         //直接使用appendString
    32         [mstr appendString:@" and string C"];
    33         NSLog(@"%@",mstr);
    34         
    35         //根据范围删除子字符串
    36         [mstr deleteCharactersInRange:NSMakeRange(16, 13)];
    37         NSLog(@"%@",mstr);
    38         
    39         //查找然后将其删除
    40         substr =  [mstr rangeOfString:@"string B and "];
    41         if(substr.location != NSNotFound){
    42             [mstr deleteCharactersInRange:substr];
    43             NSLog(@"%@",mstr);
    44         }
    45         
    46         //直接设置为可变的字符串
    47         [mstr setString:@"This is string A"];
    48         NSLog(@"%@",mstr);
    49         
    50         //替换一些字符
    51         [mstr replaceCharactersInRange:NSMakeRange(8, 8) withString:@"a mutable string"];
    52         NSLog(@"%@",mstr);
    53         
    54         //查找和替换
    55         search = @"This is";
    56         replace = @"An example";
    57         substr = [mstr rangeOfString: search];
    58         if(substr.location != NSNotFound){
    59             [mstr replaceCharactersInRange:substr withString:replace];
    60             NSLog(@"%@",mstr);
    61         }
    62         
    63         //查找和替换所有匹配项
    64         search = @"a";
    65         replace = @"X";
    66         substr = [mstr rangeOfString:search];
    67         while(substr.location != NSNotFound){
    68             [mstr replaceCharactersInRange:substr withString:replace];
    69             substr = [mstr rangeOfString:search];
    70             
    71         }
    72         NSLog(@"%@",mstr);
    73     }
    74     return 0;
    75 }
  • 相关阅读:
    vue-cli项目中使用vw——相比flexible更原生的移动端解决方案
    android shap画圆(空心圆、实心圆)
    Android四大组件——Activity跳转动画、淡出淡入、滑出滑入、自定义退出进入
    HDU 3980 Paint Chain (sg函数)
    HDU 3951 Coin Game (简单博弈)
    HDU 1850 Being a Good Boy in Spring Festival (Nim博弈)
    HDU 3389 Game (阶梯博弈)
    HDU 3032 Nim or not Nim? (sg函数)
    HDU 1907 John (Nim博弈)
    HDU 4638 Group (线段树 | 树状数组 + 离线处理)
  • 原文地址:https://www.cnblogs.com/SeanAstin/p/5092002.html
Copyright © 2011-2022 走看看