NSString 的一些操作

来源:互联网 发布:mysql explain 编辑:程序博客网 时间:2024/06/03 22:52

+ (NSString *)searchInString:(NSString *)string charStart:(char)start charEnd:(char)end

{

   int inizio = 0, stop =0;

   for(int i =0; i < [string length]; i++) 

    {

       if([string characterAtIndex:i] == start) 

        {

            inizio = i+1;

            i +=1;

        }

       if([string characterAtIndex:i] == end) 

        {

            stop = i;

           break;

        }

    }

    stop -= inizio;

   NSString *string2 = [[string substringFromIndex:inizio-1] substringToIndex:stop+1];

    

   return string2;

}


- (NSString *)searchCharStart:(char)start charEnd:(char)end

{

   int inizio = 0, stop =0;

   for(int i =0; i < [selflength]; i++) 

    {

       if([self characterAtIndex:i] == start) 

        {

            inizio = i+1;

            i +=1;

        }

       if([self characterAtIndex:i] == end) 

        {

            stop = i;

           break;

        }

    }

    stop -= inizio;

   NSString *string = [[selfsubstringFromIndex:inizio-1]substringToIndex:stop+1];

    

   return string;

}


- (NSString *)MD5

{

   if(self == nil || [self length] == 0)

       return nil;

    

    unsignedchar digest[CC_MD5_DIGEST_LENGTH], i;

CC_MD5([selfUTF8String], (int)[selflengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);

NSMutableString *ms = [NSMutableStringstring];

for(i=0;i<CC_MD5_DIGEST_LENGTH;i++)

    {

[msappendFormat: @"%02x", (int)(digest[i])];

}

return [mscopy];

}


- (NSString *)SHA1

{

   if(self == nil || [self length] == 0)

       return nil;

    

    unsignedchar digest[CC_SHA1_DIGEST_LENGTH], i;

CC_SHA1([selfUTF8String], (int)[selflengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);

NSMutableString *ms = [NSMutableStringstring];

for(i=0;i<CC_SHA1_DIGEST_LENGTH;i++)

    {

[msappendFormat: @"%02x", (int)(digest[i])];

}

return [mscopy];

}


- (NSString *)SHA256

{

   if(self == nil || [self length] == 0)

       return nil;

    

    unsignedchar digest[CC_SHA256_DIGEST_LENGTH], i;

CC_SHA256([selfUTF8String], (int)[selflengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);

NSMutableString *ms = [NSMutableStringstring];

for(i=0;i<CC_SHA256_DIGEST_LENGTH;i++)

    {

[msappendFormat: @"%02x", (int)(digest[i])];

}

return [mscopy];

}


- (NSString *)SHA512

{

   if(self == nil || [self length] == 0)

       return nil;

    

    unsignedchar digest[CC_SHA512_DIGEST_LENGTH], i;

CC_SHA512([selfUTF8String], (int)[selflengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);

NSMutableString *ms = [NSMutableStringstring];

for(i=0;i<CC_SHA512_DIGEST_LENGTH;i++)

    {

[msappendFormat: @"%02x", (int)(digest[i])];

}

return [mscopy];

}


- (BOOL)hasString:(NSString *)substring

{

   return !([selfrangeOfString:substring].location ==NSNotFound);

}


- (BOOL)isEmail

{

   NSString *emailRegEx =  

@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"  

@"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\" 

@"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"  

@"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"  

@"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"  

@"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"  

@"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";  

   NSPredicate *regExPredicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegEx];  

    return [regExPredicateevaluateWithObject:[selflowercaseString]];  

}


+ (BOOL)isEmail:(NSString *)email

{

   NSString *emailRegEx =

@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"

@"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"

@"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"

@"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"

@"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"

@"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"

@"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";

   NSPredicate *regExPredicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegEx];

    return [regExPredicateevaluateWithObject:[email lowercaseString]];

}


+ (NSString *)convertToUTF8Entities:(NSString *)string

{

   NSString *isoEncodedString = [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[

                        [string stringByReplacingOccurrencesOfString:@"%27"withString:@"'"]

                                stringByReplacingOccurrencesOfString:[@"%e2%80%99"capitalizedString] withString:@"’"]

                                stringByReplacingOccurrencesOfString:[@"%2d"capitalizedString] withString:@"-"]

                                stringByReplacingOccurrencesOfString:[@"%c2%ab"capitalizedString] withString:@"«"]

                                stringByReplacingOccurrencesOfString:[@"%c2%bb"capitalizedString] withString:@"»"]

                                stringByReplacingOccurrencesOfString:[@"%c3%80"capitalizedString] withString:@"À"]

                                stringByReplacingOccurrencesOfString:[@"%c3%82"capitalizedString] withString:@"Â"]

                                stringByReplacingOccurrencesOfString:[@"%c3%84"capitalizedString] withString:@"Ä"]

                                stringByReplacingOccurrencesOfString:[@"%c3%86"capitalizedString] withString:@"Æ"]

                                stringByReplacingOccurrencesOfString:[@"%c3%87"capitalizedString] withString:@"Ç"]

                                stringByReplacingOccurrencesOfString:[@"%c3%88"capitalizedString] withString:@"È"]

                                stringByReplacingOccurrencesOfString:[@"%c3%89"capitalizedString] withString:@"É"]

                                stringByReplacingOccurrencesOfString:[@"%c3%8a"capitalizedString] withString:@"Ê"]

                                stringByReplacingOccurrencesOfString:[@"%c3%8b"capitalizedString] withString:@"Ë"]

                                stringByReplacingOccurrencesOfString:[@"%c3%8f"capitalizedString] withString:@"Ï"]

                                stringByReplacingOccurrencesOfString:[@"%c3%91"capitalizedString] withString:@"Ñ"]

                                stringByReplacingOccurrencesOfString:[@"%c3%94"capitalizedString] withString:@"Ô"]

                                stringByReplacingOccurrencesOfString:[@"%c3%96"capitalizedString] withString:@"Ö"]

                                stringByReplacingOccurrencesOfString:[@"%c3%9b"capitalizedString] withString:@"Û"]

                                stringByReplacingOccurrencesOfString:[@"%c3%9c"capitalizedString] withString:@"Ü"]

                                stringByReplacingOccurrencesOfString:[@"%c3%a0"capitalizedString] withString:@"à"]

                                stringByReplacingOccurrencesOfString:[@"%c3%a2"capitalizedString] withString:@"â"]

                                stringByReplacingOccurrencesOfString:[@"%c3%a4"capitalizedString] withString:@"ä"]

                                stringByReplacingOccurrencesOfString:[@"%c3%a6"capitalizedString] withString:@"æ"]

                                stringByReplacingOccurrencesOfString:[@"%c3%a7"capitalizedString] withString:@"ç"]

                                stringByReplacingOccurrencesOfString:[@"%c3%a8"capitalizedString] withString:@"è"]

                                stringByReplacingOccurrencesOfString:[@"%c3%a9"capitalizedString] withString:@"é"]

                                stringByReplacingOccurrencesOfString:[@"%c3%af"capitalizedString] withString:@"ï"]

                                stringByReplacingOccurrencesOfString:[@"%c3%b4"capitalizedString] withString:@"ô"]

                                stringByReplacingOccurrencesOfString:[@"%c3%b6"capitalizedString] withString:@"ö"]

                                stringByReplacingOccurrencesOfString:[@"%c3%bb"capitalizedString] withString:@"û"]

                                stringByReplacingOccurrencesOfString:[@"%c3%bc"capitalizedString] withString:@"ü"]

                                stringByReplacingOccurrencesOfString:[@"%c3%bf"capitalizedString] withString:@"ÿ"]

                                stringByReplacingOccurrencesOfString:@"%20"withString:@" "];

    

   return isoEncodedString;

}


- (NSString *)sentenceCapitalizedString

{

   if(![self length])

    {

       return [NSStringstring];

    }

    NSString *uppercase = [[selfsubstringToIndex:1]uppercaseString];

    NSString *lowercase = [[selfsubstringFromIndex:1]lowercaseString];

    

   return [uppercase stringByAppendingString:lowercase];

}


- (NSString *)dateFromTimestamp

{

   NSString *year = [selfsubstringToIndex:4];

    NSString *month = [[selfsubstringFromIndex:5]substringToIndex:2];

    NSString *day = [[selfsubstringFromIndex:8]substringToIndex:2];

    NSString *hours = [[selfsubstringFromIndex:11]substringToIndex:2];

    NSString *minutes = [[selfsubstringFromIndex:14]substringToIndex:2];

    

   return [NSStringstringWithFormat:@"%@/%@/%@ %@:%@", day, month, year, hours, minutes];

}


- (NSString *)urlEncode

{

    NSMutableString *output = [NSMutableStringstring];

    const unsignedchar *source = (constunsigned char *)[selfUTF8String];

   int sourceLen = (int)strlen((constchar *)source);

   for(int i =0; i < sourceLen; ++i)

    {

       const unsignedchar thisChar = source[i];

        

       if(thisChar == ' ')

        {

            [outputappendString:@"+"];

        }

       else if(thisChar =='.' || thisChar == '-' || thisChar == '_' || thisChar == '~' || (thisChar >= 'a' && thisChar <= 'z') || (thisChar >= 'A' && thisChar <='Z') || (thisChar >= '0' && thisChar <= '9'))

        {

            [outputappendFormat:@"%c", thisChar];

        }

       else

        {

            [outputappendFormat:@"%%%02X", thisChar];

        }

    }

    

   return output;

}


0 0
原创粉丝点击