zoukankan      html  css  js  c++  java
  • 【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相比,不仅可以转换基本数据类型,还能转换结构体和对象。

  • 相关阅读:
    优先队列
    Problem W UVA 662 二十三 Fast Food
    UVA 607 二十二 Scheduling Lectures
    UVA 590 二十一 Always on the run
    UVA 442 二十 Matrix Chain Multiplication
    UVA 437 十九 The Tower of Babylon
    UVA 10254 十八 The Priest Mathematician
    UVA 10453 十七 Make Palindrome
    UVA 10163 十六 Storage Keepers
    UVA 1252 十五 Twenty Questions
  • 原文地址:https://www.cnblogs.com/shvier/p/5071536.html
Copyright © 2011-2022 走看看