不可变字符串对象的创建及其基本操作

xiaoxiao2021-02-27  254

C语言字符串

字符串必须用双引号包含字符串中的每个字符占一个字节,ASCIIC语言字符串的末尾有一个隐藏的’\0’打印C语言的字符串用 %s 占位符,传递字符串的首地址即可

OC字符串对象(NSString)

字符串前面加上 @打印OC的字符串对象用 %@OC字符串中对象中的每一个字符都是uichar字符,uichar字符符合unicode编码Utf8编码存储字符串,不需要考虑字符存储 // // main.m // NSString对象基本操作 // // Created by weisuzhong on 2017/7/7. // Copyright © 2017年 weisuzhong. All rights reserved. // #import <Foundation/Foundation.h> //C语言字符串 //"Hello World" //1. C语言字符串必须用双引号包含 //2. C语言字符串中的每个字符占一个字节,ASCII //3. C语言字符串的末尾有一个隐藏的'\0' //4. 打印C语言的字符串用 %s 占位符,传递字符串的首地址即可 //字符串对象 //NSString //1. 字符串前面加上 @ //2. 打印OC的字符串对象用 %@ //3. OC字符串中对象中的每一个字符都是uichar字符,uichar字符符合unicode编码 //4. Utf8编码存储字符串,不需要考虑字符存储 int main(int argc, const char * argv[]) { @autoreleasepool { char *cstring = "Hello World 中国"; printf("%c\n",cstring[7]); printf("%ld\n",sizeof("Hello World")); //ocstring是一个对象指针,指向常量区的字符串对象 NSString *ocstring = @"Hello World 中国";//存储在常量区中 NSLog(@"ocstring = %@",ocstring); //字符串的创建——构造方法 //用C语言的字符串构造一个OC字符串对象 NSString *OCStr = [[NSString alloc] initWithUTF8String:"Welcome to China"]; NSLog(@"OCStr = %@",OCStr); //NSLog默认换行 //格式化构造OC字符串对象 NSString *OCStr1 = [[NSString alloc] initWithFormat:@"%s##%d##%@","Hello",888,@"China"]; NSLog(@"OCStr1 = %@",OCStr1); //用传递的字符串对象构造新的字符串对象 NSString *OCStr2 = @"上海火车站"; NSString *OCStr3 = [[NSString alloc] initWithString:OCStr2]; NSLog(@"OCStr3 = %@",OCStr3); //用C语言的字符串构造OC字符串对象,该方法主要用于iOS开发 NSString *OCStr4 = [[NSString alloc] initWithCString:"中国教育" encoding:NSUTF8StringEncoding]; NSLog(@"OCStr4 = %@",OCStr4); //创建字符串对象——类方法,将C语言字符串转换成OC字符串对象 NSString *OCStr5 = [NSString stringWithUTF8String:"Hello World!"]; NSLog(@"OCStr5 = %@",OCStr5); NSString *OCStr6 = [NSString stringWithString:OCStr2]; NSLog(@"OCStr6 = %@",OCStr6); NSString *OCStr7 = [NSString stringWithFormat:@"%d,%.2f,%s",125,45.69,"Hello World"]; NSLog(@"OCStr7 = %@",OCStr7); //用C语言的字符串来创建OC字符串对象 NSString *OCStr8 = [NSString stringWithCString:"I am a good boy 来自中国" encoding:NSUTF8StringEncoding]; NSLog(@"OCStr8 = %@",OCStr8); //字符串其它用法 //求字符串的长度 NSString *str = @"welcome 中国"; NSInteger len = [str length]; NSLog(@"len = %li",len); //获取指定下标位置的字符 unichar ch = [str characterAtIndex:3]; NSLog(@"ch = %C",ch); //%c 打印ASCII码字符,%C 打印unicode字符 //追加字符串 NSString *OCStr9 = [str stringByAppendingString:@"你好"]; //格式化追加字符串 NSString *OCStr10 = [str stringByAppendingFormat:@"%d%s",123," World"]; NSLog(@"OCStr10 = %@",OCStr10); //字符串的提取 //从指定下标位置提取子串到字符串末尾 NSLog(@"subString = %@" , [OCStr10 substringFromIndex:4]); //提取子串到指定位置,不包含指定位置字符 NSLog(@"subString = %@" , [OCStr10 substringToIndex:4]); //提取指定范围的子串 NSRange range1 = {4,6}; NSLog(@"subString = %@" , [OCStr10 substringWithRange:range1]); NSLog(@"subString = %@" , [OCStr10 substringWithRange:NSMakeRange(4, 6)]); //字符串查找 NSString *OCStr11 = @"bai du hello world bai du"; //返回子串在原字符串中的范围 NSRange range2 = [OCStr11 rangeOfString:@"we"]; if (range2.location == NSNotFound) { //NSNotFound是long类型范围内的最大值 NSLog(@"NSNotFound = %li" , NSNotFound); } else{ NSLog(@"查找该子串,location = %lu , length = %lu" , range2.location , range2.length); } //倒序查找字符串 NSRange range3 = [OCStr11 rangeOfString:@"du" options:NSBackwardsSearch]; NSLog(@"查找到该子串,location = %lu , length = %lu" , range3.location , range3.length); //在指定范围内查找字符串 //NSLiteralSearch:正序查找 NSRange range4 = [OCStr11 rangeOfString:@"du" options:NSLiteralSearch range:NSMakeRange(7, 14)]; NSLog(@"查找到该子串,location = %lu , length = %lu" , range4.location , range4.length); //字符串的大小写转换 NSString *OCStr12 = @"hello World!"; NSLog(@"str = %@" , [OCStr12 uppercaseString]); NSLog(@"str = %@" , [OCStr12 lowercaseString]); NSLog(@"str = %@" , [OCStr12 capitalizedString]); //首字母大写 //字符串数值转换 NSLog(@"num = %i" , [@"1234asd" intValue]); //将字符串对象转换为int类型数值 NSLog(@"num = %li" , [@"123456789" integerValue]); //将字符串对象转换为 NSInteger 类型的值 NSLog(@"num = %.2f" , [@"3.1456" floatValue]); //把字符串对象转换为浮点类型 //字符串的置换 NSString *Str = @"hello world china hello world"; //用传入的字符串对象替换指定范围的字符串 NSLog(@"str = %@" , [Str stringByReplacingCharactersInRange:NSMakeRange(12, 5) withString:@"welcome"]); //用传入的字符串替换在原字符串中出现的所有目标字符串 NSLog(@"str = %@" , [Str stringByReplacingOccurrencesOfString:@"world" withString:@"baidu"]); NSLog(@"str = %@" , [Str stringByReplacingOccurrencesOfString:@"hello" withString:@"HELLO" options:NSLiteralSearch range:NSMakeRange(12, 17)]); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-10790.html

最新回复(0)