zoukankan      html  css  js  c++  java
  • OC语言--字符串(NSString& NSMutableString)

    首先声明一下:

    OC 中的函数,是全局的,如 NSLog();,它不属于任何类,不属于任何一个对象。

    OC 中的方法,非全局的,init 方法,用中括号来使用,它属于类本身,或者属于对象本身;分为类方法,和实例方法(对象方法);方法被封装对象,或类模板当中

    1. 不可变字符串NSString

    1.1 OC字符串和C字符串的不同

    OC字符串是对象,占用堆空间;C 字符串是数据,它占用栈空间

    1.2 OC字符串的常见操作

    (1) 常用创建方法

    //实例方法创建字符串

    - (instancetype)initWithString:(NSString *)aString;

    - (instancetype)initWithFormat:(NSString *)format, …;

    - (instancetype)initWithUTF8String:(const char *)bytes;

    //用类方法创建字符串

    + (instancetype)stringWithString:(NSString *)aString;

    + (instancetype)stringWithFormat:(NSString *)format,, …;

    + (instancetype)stringWithUTF8String:(const char *)bytes;

    (2)求字符串长度

    - (NSUInteger)length;

    (3) 通过索引获取相应的字符

    - (unichar)characterAtIndex:(NSUInteger)index;

    (4) 字符串比较

    //判断两个字符串是否相等 

    - (BOOL)isEqualToString:(NSString *)aString;

    //比较两个字符串大小

    - (NSComparisonResult)compare:(NSString *)aString;

    //不区分大小写比较大小

    - (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString;

    (5) 字符串查找//在给定的字符串中去查找子字符串

    - (NSRange)rangeOfString:(NSString *)aString;

    (6) 判断前后缀

    //前缀字符串

    - (BOOL)hasPrefix:(NSString *)aString;

    //后缀字符串

    - (BOOL)hasSuffix:(NSString *)aString;

    (7) 数字字符串转化为各种数字类型

    - (double)doubleValue;

    - (float)floatValue;

    - (int)intValue;

    //long unsigned int

    - (NSInteger)integerValue;

    - (long long)longLongValue;

    - (BOOL)boolValue;  

    (8) 大小写转换

    - (NSString *)uppercaseString;//将所有字符转换成大写

    - (NSString *)lowercaseString;//将所有字符转换成小写

    - (NSString *)capitalizedString;////将第一个字符转换成大写

    *(9)字符串提取

    - (NSString *)substringFromIndex:(NSUInteger)from;

    - (NSString *)substringToIndex:(NSUInteger)to;

    - (NSString *)substringWithRange:(NSRange)range;

    *(10) 从本地读取文件内容

    - (id)initWithContentsOfFile:(NSString *)path 

    encoding:(NSStringEncoding)enc 

    error:(NSError **)error;

    + (id)stringWithContentsOfFile:(NSString *)path 

    encoding:(NSStringEncoding)enc 

    error:(NSError **)error;

    eg.NSString基本使用

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
    
      @autoreleasepool {
        NSString* a = [[NSString alloc]initWithString:@"你好吗,hello"];
        NSString* aa = [NSString stringWithFormat:@"%d %@",20,@"world"];
        NSMutableString* b = [[NSMutableString alloc]initWithString:@"HELLO"];
        unichar myChar = [a characterAtIndex:2];
        
        NSLog(@"The Length:%lu",[a length]);
        NSLog(@"The Length:%lu",[aa length]);
        NSLog(@"The Length:%lu",[b length]);
        
        NSLog(@"The character: %C",myChar);
        
        NSString* aaa = a;
        //判断是否相同
        if([a isEqualToString:aaa] == YES){
          printf("a isEqualToString aaa
    ");
        }else{
          printf("a is different from aaa
    ");
        }
        //比较字符串大小
        if([a caseInsensitiveCompare:aa] == NSOrderedSame){
          printf("a equals aaa
    ");
        }else if ([a caseInsensitiveCompare:aa] == NSOrderedAscending){
          printf("a less than aaa
    ");
        }else{//NSOrderedDescending
          printf("a great than aaa
    ");
        }
        
      }
        return 0;
    }
    

    2 可变字符串NSMutableString

    2.1 什么是可变字符串

    可变字符串对象的内容可以改变

    2.2 NSMutableString 和NSString 的关系

    NSMutableString 继承于 NSString,

    NSString类的所有方法NSMutableString都可以使用

    2.3 可变字符串常见操作

    (1) 指定索引插入子串

      - (void)insertString:(NSString *)aString 

    atIndex:(NSUInteger)loc;

    (2) 删除指定范围的子串

    - (void)deleteCharactersInRange:(NSRange)range;

    (3) 追加子串

    - (void)appendString:(NSString *)aString;

    (4) 追加格式化子串

    - (void)appendFormat:(NSString *)format, ...;

    (5) 修改子串

    - (void)setString:(NSString *)aString;

    eg.NSMutableString基本使用

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
    
      @autoreleasepool {
        NSString* a = [[NSString alloc]initWithString:@"HELLO"];
        NSString* sub = [[NSString alloc]initWithString:@"EL"];
        
        NSRange myRange = [a rangeOfString:sub];
        
        printf("myRange.location:%lu
    ",myRange.location);
        printf("myRange.length:%lu
    ",myRange.length);
        
          //前缀存在判断
          //NSString* b = [NSString stringWithString:a];
        if ([a hasPrefix:@"HEL"]) {
          printf("has Prefix.
    ");
        }else{
          printf("has not Prefix.
    ");
        }
        
          //数字字符串转换成相应的数字类型
        NSString* c = [NSString stringWithUTF8String:"654321"];
        NSLog(@"Number:%d",[c intValue]+100);
          //- (BOOL)boolValue;使用
        NSString* d = [NSString stringWithFormat:@"no"];
        NSLog(@"%s",[d boolValue]?"yes":"no");
          //- (NSString *)uppercaseString;
          //将所有字符转换成大写
        NSLog(@"%@",[d uppercaseString]);
          //- (NSString *)lowercaseString;
          //将所有字符转换成小写
        NSLog(@"%@",[d lowercaseString]);
          //- (NSString *)capitalizedString;
          //将第一个字符转换成大写
        NSLog(@"%@",[d capitalizedString]);
          //-----------------------------
        NSString* longString = [NSString stringWithFormat:@"ABCDEFG1234567890"];
          //   - (NSString *)substringFromIndex:(NSUInteger)from;
        NSLog(@"%@",[longString substringFromIndex:6]);
          //- (NSString *)substringToIndex:(NSUInteger)to;
      //substringToIndex不包含index位置的字符本身
        NSLog(@"%@",[longString substringToIndex:6]);
          //- (NSString *)substringWithRange:(NSRange)range;
        NSRange myRange2 = {5,6};
        myRange2.location = 4;
        myRange2.length = 7;
        NSLog(@"%@",[longString substringWithRange:myRange2]);
        
    
      }
        return 0;
    }
    
  • 相关阅读:
    JS window对象 Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。
    JS window对象 返回下一个浏览的页面 forward()方法,加载 history 列表中的下一个 URL。
    JS window对象 取消计时器clearTimeout() setTimeout()和clearTimeout()一起使用,停止计时器。 语法: clearTimeout(id_of_setT
    JS window对象 History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。语法: window.history.[属性|方法]
    JS window对象 返回前一个浏览的页面 back()方法,加载 history 列表中的前一个 URL。 语法: window.history.back();
    JS window对象 计时器setTimeout() setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。 语法: setTimeout(代码,延迟时间);
    JS window对象取消计时器clearInterval() clearInterval() 方法可取消由 setInterval() 设置的交互时间。
    ELK问题处理
    nginx 日志变量含义
    nginx ssl 更换问题
  • 原文地址:https://www.cnblogs.com/sublimter/p/4161813.html
Copyright © 2011-2022 走看看