123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- //
- // NSString+MJExtension.m
- // MJExtensionExample
- //
- // Created by MJ Lee on 15/6/7.
- // Copyright (c) 2015年 小码哥. All rights reserved.
- //
- #import "NSString+MJExtension.h"
- @implementation NSString (MJExtension)
- - (NSString *)mj_underlineFromCamel
- {
- if (self.length == 0) return self;
- NSMutableString *string = [NSMutableString string];
- for (NSUInteger i = 0; i<self.length; i++) {
- unichar c = [self characterAtIndex:i];
- NSString *cString = [NSString stringWithFormat:@"%c", c];
- NSString *cStringLower = [cString lowercaseString];
- if ([cString isEqualToString:cStringLower]) {
- [string appendString:cStringLower];
- } else {
- [string appendString:@"_"];
- [string appendString:cStringLower];
- }
- }
- return string;
- }
- - (NSString *)mj_camelFromUnderline
- {
- if (self.length == 0) return self;
- NSMutableString *string = [NSMutableString string];
- NSArray *cmps = [self componentsSeparatedByString:@"_"];
- for (NSUInteger i = 0; i<cmps.count; i++) {
- NSString *cmp = cmps[i];
- if (i && cmp.length) {
- [string appendString:[NSString stringWithFormat:@"%c", [cmp characterAtIndex:0]].uppercaseString];
- if (cmp.length >= 2) [string appendString:[cmp substringFromIndex:1]];
- } else {
- [string appendString:cmp];
- }
- }
- return string;
- }
- - (NSString *)mj_firstCharLower
- {
- if (self.length == 0) return self;
- NSMutableString *string = [NSMutableString string];
- [string appendString:[NSString stringWithFormat:@"%c", [self characterAtIndex:0]].lowercaseString];
- if (self.length >= 2) [string appendString:[self substringFromIndex:1]];
- return string;
- }
- - (NSString *)mj_firstCharUpper
- {
- if (self.length == 0) return self;
- NSMutableString *string = [NSMutableString string];
- [string appendString:[NSString stringWithFormat:@"%c", [self characterAtIndex:0]].uppercaseString];
- if (self.length >= 2) [string appendString:[self substringFromIndex:1]];
- return string;
- }
- - (BOOL)mj_isPureInt
- {
- NSScanner *scan = [NSScanner scannerWithString:self];
- int val;
- return [scan scanInt:&val] && [scan isAtEnd];
- }
- - (NSURL *)mj_url
- {
- // [self stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"!$&'()*+,-./:;=?@_~%#[]"]];
-
- return [NSURL URLWithString:(NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", NULL,kCFStringEncodingUTF8))];
- }
- @end
- @implementation NSString (MJExtensionDeprecated_v_2_5_16)
- - (NSString *)underlineFromCamel
- {
- return self.mj_underlineFromCamel;
- }
- - (NSString *)camelFromUnderline
- {
- return self.mj_camelFromUnderline;
- }
- - (NSString *)firstCharLower
- {
- return self.mj_firstCharLower;
- }
- - (NSString *)firstCharUpper
- {
- return self.mj_firstCharUpper;
- }
- - (BOOL)isPureInt
- {
- return self.mj_isPureInt;
- }
- - (NSURL *)url
- {
- return self.mj_url;
- }
- @end
|