iOS与Android对比学习之NSString

    xiaoxiao2021-04-13  34

    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。

    转载请注明原文地址: https://ju.6miu.com/read-668488.html

    最新回复(0)