iOS与Android对比学习之NSString

来源:互联网 发布:网络文化建设申论 编辑:程序博客网 时间:2024/06/06 03:08

NSString类的使用

学习OC的应该都知道有个叫Foundation框架的东西,这个框架其实就是OC为我们提供的类的集合,就跟Java中的JDK一样,里面覆盖了大量的我们平常使用的类。而今天要学习的NSString也是这个框架里面的,它就是OC中的字符串类,而Java中则叫String。掌握了OC的基本语法,我们就可以直接使用这个类了。

#import <Foundation/Foundation.h>/** NSString类的使用 */void useNSString() {    char *ch = "c hello";    NSString *str = @"hello";    /*     OC C的字符串类型转换     */    //C --> OC    NSLog(@"C转换的OC字符串:%@", [NSString stringWithUTF8String:ch]);    //OC --> C    NSLog(@"OC转换的C字符串:%s", [str UTF8String]);    //格式化字符串    int a = 3;    int b= 5;    NSString *strFormat = [NSString stringWithFormat:@"a = %d,b = %d", a, b];    NSLog(@"格式化的字符串:%@", strFormat);    //拼接字符串    NSString *appendStr = [strFormat stringByAppendingString: str];    NSLog(@"拼接的字符串:%@", appendStr);    //大小写的转换    NSString *alpha = @"AfCu";    NSString *convert = [alpha lowercaseString];    NSLog(@"转换后的小写字符串:%@,转换后的大写字符串:%@", convert, [alpha uppercaseString]);    //前缀、后缀的判断    NSString *fix = @"http://www.qq.com";    BOOL hasPrefix = [fix hasPrefix:@"https"];    NSLog(@"是否有对应的前缀:%@", hasPrefix ? @"true" : @"false");    BOOL hasSuffix = [fix hasSuffix:@".com"];    NSLog(@"是否有对应的后缀:%@", hasSuffix ? @"true" : @"false");    //判断字符串是否相等    NSString *stra = @"stra";    NSString *strb = @"strb";    BOOL equal = [stra isEqualToString:strb];    if (equal) {        NSLog(@"字符串相等");    } else {        NSLog(@"字符串不相等");    }    //比较字符串    //NSComparisonResult    //分割字符串    NSString *split = @"a,b,c,d,e,f,g";    NSArray *splitArray = [split componentsSeparatedByString:@","];    for (NSString *str in splitArray) {        NSLog(@"分割后的字符串:%@", str);    }    //按照范围截取字符串    NSRange range = NSMakeRange(2, 5);    NSString *rangeStr = [split substringWithRange: range];    NSLog(@"截取后的字符串:%@", rangeStr);    //从某一位开始截取后面的字符串    int from = 3;    NSString *rangeFrom = [split substringFromIndex: from];    NSLog(@"从%d位开始截取字符串为:%@", from, rangeFrom);    //从开头截取到某一位    NSLog(@"从开头截取到某%d位的字符串:%@", from, [split substringToIndex: from]);    //将字符串拆分为每一个字符    for (int i=0;i<[split length]; i++) {        NSLog(@"字符串拆分为每一个字符:%c", [split characterAtIndex: i]);    }    //查找    NSString *findString = @"i love Java";    NSString *findStr = @"a";    NSRange findRange = [findStr rangeOfString: findStr];    NSLog(@"查找指定字符串%@的所在位置%d,其长度为%d", findStr, findRange.location, findRange.length);    //替换    NSString *rawString = @"Hello Objective-C,Hello Java";    NSString *replaceString = [rawString stringByReplacingCharactersInRange: NSMakeRange(18, 5) withString: @"你好"];    NSLog(@"替换后的字符串:%@", replaceString);}int main(int argc, const char * argv[]) {    @autoreleasepool {        // insert code here...        NSLog(@"Hello, World!");        useNSString();    }    return 0;}

以上基本上是开发中对字符串常用的操作了,如果有其它的需求查看下API即可。不过这里我有点奇怪的是为什么OC的调用方法使用“[ ]”符号括起来,而NSLog则只使用“( )”呢?

另外还有可变字符串NSMutableString,在使用过成中可以动态的改变字符串内容。由于还没深入学习,但感觉类似Java中的StringBuilder。

0 0
原创粉丝点击