• 【Objective-C学习记录】第二十二天


    不可变字符串操作

    1.initWithFormat:。初始化操作,其中直接赋值的效果与该方法一样,例如:

    1 NSString *string1 = [[NSString alloc] initWithFormat:@"iOS"];
    2 NSString *string2 = @"iOS";

    但需要注意的是,第二种方法声明的是常量字符串,位于内存里的常量区。

    2.length。获取字符串长度,length的定义是

    1 @property (readonly) NSUInteger length;

    通过调用属性的方式即可:[string length]或string.length

    3.isEqualToString:。判断两个字符串的内容是否相等

    4.compare:。比较两个字符串的大小,可以看一下该方法的定义:

    1 - (NSComparisonResult)compare:(NSString *)string;

    可以发现该方法有一个返回值,查看该返回值的定义:

    1 typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};

    返回值为枚举类型,其中-1表示升序,即前面的字符串比后面的字符串小,以此类推。

    5.获取子串:

       A.substringFromIndex:。后面跟下标,即从指定的下标开始截取字符串。

       B.substringToIndex:。后面跟下标,即从头开始截取到指定的下标。

       以上两个方法,一个从中间到结尾,一个从开头到中间。

       C.substringWithRange:。后面写这样类型的一个参数:(NSRange)range,查看该类型的定义:

    1 typedef struct _NSRange {
    2     NSUInteger location;
    3     NSUInteger length;
    4 } NSRange;

       该类型是一个结构体,通过NSMakeRange方法可以传入正确的参数,分别表示开始位置和长度。

    6.stringByAppendingString:。拼接字符串,将参数里的字符串拼接到前面,要注意的是,该方法会将拼接后的字符串作为返回值,即不会对原有的两个字符串进行任何操作

    7.替换字符串:

       A.stringByReplacingCharactersInRange:withString:。与前面获取子串的方法类似,给定一个NSRange范围,从后面的字符串替换,即使后面的字符串比前面长也可以正常进行。

       B.stringByReplacingOccurrencesOfString:withString:。该方法会根据第一个参数对字符串进行匹配,用第二个参数将匹配到的全部替换。

    8.类型转换

       intValue charValue 依次类推

    9.大小写

       A.uppercaseString。全部转大写

       B.lowercaseString。全部转小写

       C.capitalizedString。每个单词的首字母大写

    10.字符串检验

        A.hasPrefix:。检测字符串是否以参数开头,返回值是BOOL

        B.hasSuffix:。检测字符串是否以参数结尾,返回值是BOOL

    可变字符串操作:

    1.initWithCapacity:。可变字符串初始化,参数为分配的空间,因为可变字符串的大小不是固定的,所以根据实际情况给值,没有规定可以用0填充。

    2.setString:。用传入的参数设置字符串的值,会将原有的内容覆盖掉。

    3.appendFormat:。拼接字符串,与stringByAppendString:同理

    4.deleteCharactersInRange:。根据给定的NSRange删除字符串

    5.insertString: atIndex:。在指定的下标插入字符串,第一个参数是插入的字符串,第二个参数是插入的下标

    6.replaceCharactersInRange:withString:。替换指定范围内的字符串,第一个参数是NSRange类型的范围,第二个参数是需要的字符串

    值对象:

    NSNumber

    因为OC中的数组可以存储不同类型的数据,但是这些数据必须是对象,所以需要通过值对象来存储基本数据类型。语法:NSNumber *num = [NSNumber numberWithInt:4];

    后面的方法可以根据具体参数类型的进行更改。

    也可以将NSNumber *类型的对象还原成 基本数据类型

    [num intValue]

    值对象也可以通过compare:方法比较大小

    NSValue

    NSValue与NSNumber相比,不仅可以转换基本数据类型,还能转换结构体和对象。

  • 相关阅读:
    UVALive 8519 Arrangement for Contests 2017西安区域赛H 贪心+线段树优化
    UVALive 8513 lovers 2017 西安区域赛 B 贪心+multiset
    JAVA导出EXCEL——POI(转)
    Oracle导入导出——windows命令行形式
    miniUI ExcelExport导出JAVA实现
    JSONObject遍历获取键值
    wrong number of arguments
    JAVA批量修改文件名
    miniUI DataGrid编辑后事件代码示例
    oracle10g没有行列转换函数的替代方法(转)
  • 原文地址:https://www.cnblogs.com/shvier/p/5071536.html
Copyright © 2020-2023  润新知