ios字符串相关操作

1.计算字符串宽度

/** 

@param str 字符串

 @param font 字体

 @param height 高度

 @return 宽度*/

- (CGFloat)widthOfString:(NSString*)strandFont:(UIFont*)fontandHeight:(CGFloat)height{

    return [str boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, height) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size.width;

}

2. 计算字符串的高度

 @param str 字符串

 @param font 字体

 @param width 宽度

 @return 高度

 */

- (CGFloat)heightOfString:(NSString*)strandFont:(UIFont*)fontandWidth:(CGFloat)width{

    return [str boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size.height;

}

3.校验字符串是否是网址

+ (BOOL)isUrlString:(NSString*)string {

  NSString*emailRegex =@"[a-zA-z]+://.*";

  NSPredicate*emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegex];

  return[emailTestevaluateWithObject:string];

}

4.字符串MD5加密

- (NSString *)stringToMD5:(NSString *)str

{

   //1.首先将字符串转换成UTF-8编码, 因为MD5加密是基于C语言的,所以要先把字符串转化成C语言的字符串

    constchar*fooData = [strUTF8String];

    //2.然后创建一个字符串数组,接收MD5的值

    unsigned char result[CC_MD5_DIGEST_LENGTH];


    //3.计算MD5的值, 这是官方封装好的加密方法:把我们输入的字符串转换成16进制的32位数,然后存储到result中

    CC_MD5(fooData, (CC_LONG)strlen(fooData), result);

    /**

     第一个参数:要加密的字符串

     第二个参数: 获取要加密字符串的长度

     第三个参数: 接收结果的数组

     */

    //4.创建一个字符串保存加密结果

    NSMutableString *saveResult = [NSMutableString string];

    //5.从result 数组中获取加密结果并放到 saveResult中

    for(inti =0; i

        [saveResultappendFormat:@"%02x", result[i]];

    }

    /*

     x表示十六进制,%02X  意思是不足两位将用0补齐,如果多余两位则不影响

     NSLog("%02X", 0x888);  //888

     NSLog("%02X", 0x4); //04

     */

    returnsaveResult;

}

5.字典转JSON字符串

- (NSString *)jsonStringOriWithDict:(NSDictionary *)dict{

    NSError *error;

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];

    NSString *jsonString;

    if (!jsonData) {

        NSLog(@"%@",error);

    }else{

        jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

    }

    return jsonString;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容