• 字符串与常用目标互换


    1、OC 字符串与 C 字符串的相互转换

    // OC 字符串转 C 字符串
    const char *CString = [@"bei jing ni hao" UTF8String];
    
    // C 字符串转 OC 字符串
    NSString *OCString1 = [[NSString alloc] initWithCString:"ni hao" encoding:NSUTF8StringEncoding];
    NSString *OCString2 = [[NSString alloc] initWithUTF8String:"ni hao"];
    
    NSString *OCString3 = [NSString stringWithCString:"ni hao" encoding:NSUTF8StringEncoding];
    NSString *OCString4 = [NSString stringWithUTF8String:"ni hao"];
    

    2、NSString 与 NSData 的相互转换

    NSString *string = @"bei jing nin hao";
    
    // NSString 转 NSData
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    
    // data 类型数据以十六进制的形式打印出
    NSLog(@"%@", data);
    
    // data 类型数据以字符串的形式打印出
    NSLog(@"%s", data.bytes);
    
    // NSData 转 NSString
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    

    3、NSString 与 NSNumber 的相互转换

    NSNumber *num1 = @10.456;
    
    // NSNumber 转换 NSString
    NSString *str = [num1 stringValue];
    
    // NSString 转 NSNumber
    NSNumber *num2 = [NSNumber numberWithFloat:[str floatValue]];
    

    4、NSString 与 NSDate 的相互转换

    NSDateFormatter *dfm = [[NSDateFormatter alloc] init];
    dfm.dateFormat = @"yyyy年MM月dd日 HH点mm分ss秒";
    dfm.locale = [NSLocale localeWithLocaleIdentifier:@"GMT+8"];
    
    // NSString 转 NSDate
    NSDate *date = [dfm dateFromString:@"2016年05月24日 17点38分03秒"];
    
    // NSDate 转 NSString
    NSString *str = [dfm stringFromDate:date];
    

    5、NSString 与 Class 的相互转换

    // NSString 转 Class
    Class ClassName = NSClassFromString(@"Student");
    
    Student *stu = [[ClassName alloc] init];
    [stu studentTest];
    
    // Class 转 NSString
    NSString *strintFromClass = NSStringFromClass([Student class]);
    

    6、NSString 与 方法名 的相互转换

    // NSString 转 方法名
    SEL selName = NSSelectorFromString(@"studentTest");
    
    // 消除 performSelector: 方法警告
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
    
    Student *stu = [[Student alloc] init];
    [stu performSelector:selName];
    
    #pragma clang diagnostic pop
    
    // 方法名 转 NSString
    NSString *stringFromSel = NSStringFromSelector(@selector(studentTest));
    

    7、NSString 与 NSProtocol 的相互转换

    // NSString 转 NSProtocol
    Protocol *ptlName = NSProtocolFromString(@"NSCopying");
    
    Student *stu = [[Student alloc] init];
    BOOL conforms = [stu conformsToProtocol:ptlName];
    
    // NSProtocol 转 NSString
    NSString *stringFromProtocol = NSStringFromProtocol(@protocol(NSCopying));
    

    8、NSString 与 NSRange 的相互转换

    NSRange range4 = NSMakeRange(9, 4);
    
    // NSRange 转 NSString
    NSString *stringFronRange = NSStringFromRange(range4);
    
    // NSString 转 NSRange
    NSRange range5 = NSRangeFromString(stringFronRange);
    

    9、NSString 与 NSPoint 的相互转换

    NSPoint point5 = NSMakePoint(9, 4);
    
    // NSPoint 转 NSString
    NSString *stringFronPoint = NSStringFromPoint(point5);
    
    // NSString 转 NSPoint
    NSPoint point6 = NSPointFromString(stringFronPoint);
    

    10、NSString 与 NSSize 的相互转换

    NSSize size5 = NSMakeSize(9, 4);
    
    // NSSize 转 NSString
    NSString *stringFronSize = NSStringFromSize(size5);
    
    // NSString 转 NSSize
    NSSize size6 = NSSizeFromString(stringFronSize);
    

    11、NSString 与 NSRect 的相互转换

    NSRect rect5 = NSMakeRect(9, 4, 4, 9);
    
    // NSRect 转 NSString
    NSString *stringFronRect = NSStringFromRect(rect5);
    
    // NSString 转 NSRect
    NSRect rect6 = NSRectFromString(stringFronRect);
    

    12、生成随机数

    // 生成 15 位长度的数字字母组合的随机数
    - (NSString *)generateTradeNO {
    
    	static int kNumber = 15;
    
    	NSString *sourceStr = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	NSMutableString *resultStr = [[NSMutableString alloc] init];
    	srand((unsigned)time(0));
    	for (int i = 0; i < kNumber; i++)
    	{
    		unsigned index = rand() % [sourceStr length];
    		NSString *oneStr = [sourceStr substringWithRange:NSMakeRange(index, 1)];
    		[resultStr appendString:oneStr];
    	}
    
    	return resultStr;
    }
    
  • 相关阅读:
    Java13新特性 -- 重新实现旧版套接字API
    Java13新特性 -- switch表达式动态CDS档案(动态类数据共享归档)
    Java13新特性 -- 文本块
    Java13新特性 -- switch表达式
    Java12新特性 -- 其他新增,移除,废弃项
    Java12新特性 -- 增强G1,自动返回未用堆内存给操作系统
    Java12新特性 -- 可中断的 G1 Mixed GC
    Java12新特性 -- 默认生成类数据共享(CDS)归档文件
    Java12新特性 -- 只保留一个 AArch64 实现
    python使用requests发送text/xml报文数据
  • 原文地址:https://www.cnblogs.com/CH520/p/9452300.html
Copyright © 2020-2023  润新知