20150611_OC字符串NSString,NSMutableString练习

来源:互联网 发布:redis和mysql的结合 编辑:程序博客网 时间:2024/06/05 17:32

本文的目的主要是练习使用OC中的两个字符串:

StringOperation.h文件:

////  StringOperation.h//  IOS150610_OC_字符串练习////  Created by qianfeng on 15/6/10.//  Copyright (c) 2015年 Peng Junlong. All rights reserved.//#import <Foundation/Foundation.h>@interface StringOperation : NSObject+(NSString*)reveserString:(NSString*)srcStr;+ (NSString *)compressString:(NSString *)srcStr;+ (NSString *)sortString:(NSString *)srcStr;+ (NSString *)reverCharacter:(NSString *)srcStr;+ (NSString *)replaceString:(NSString *)srcStr            betweenStartKey:(NSString* )startKey                  andEndKey:(NSString*)endKey;+(NSInteger)subStringCount:(NSString*)srcStr findStr:(NSString*)findStr;@end

StringOperation.m文件:

////  StringOperation.m//  IOS150610_OC_字符串练习////  Created by qianfeng on 15/6/10.//  Copyright (c) 2015年 Peng Junlong. All rights reserved.//#import "StringOperation.h"@implementation StringOperation//将传入的字符串逆序//比如输入 @"abcdef"输出@"fedcba"+(NSString*)reveserString:(NSString*)srcStr{    NSInteger len = [srcStr length];    unichar ch;    NSString *dest = @"";    for (NSInteger i=len-1; i>=0; i--) {        ch = [srcStr characterAtIndex:i];        dest = [dest stringByAppendingFormat:@"%C",ch];    }    return dest;}//压缩字符串//比如输入@"aaabbbcceaa" 输出@"3a3b2c1e2a"+ (NSString *)compressString:(NSString *)srcStr{    NSInteger len = [srcStr length];    unichar ch;    NSString *dest = @"";    NSInteger count = 1;    NSInteger j;        for (NSInteger i=0; i<len;) {        ch = [srcStr characterAtIndex:i];        count = 1;        for (j=i+1; j<len; j++) {            if (ch == [srcStr characterAtIndex:j]) {                count++;            }            else            {                break;            }        }        i=j;        dest = [dest stringByAppendingFormat:@"%ld%C",count,ch];    }    return dest;}//对字符串按字母顺序进行排序//比如输入@"aczabczab"  输出@"aaabbcczz"+ (NSString *)sortString:(NSString *)srcStr{    NSInteger len = [srcStr length];    NSString *temCh;    NSString *temCh1;    for (NSInteger i=0; i<len-1; i++) {        for (NSInteger j = 0; j<len-i-1; j++) {            if ([srcStr characterAtIndex:j] > [srcStr characterAtIndex:j+1]) {                temCh =[NSString stringWithFormat:@"%C",[srcStr characterAtIndex:j]];                temCh1 =[NSString stringWithFormat:@"%C",[srcStr characterAtIndex:j+1]];                srcStr = [srcStr stringByReplacingCharactersInRange:NSMakeRange(j, 1) withString:temCh1];                srcStr = [srcStr stringByReplacingCharactersInRange:NSMakeRange(j+1, 1) withString:temCh];            }                    }    }        return srcStr;}//将原字符串进行小写转大写,大写转小写//比如输入 @"aBCdEfGA" 输出 @"AbcDeFga"+ (NSString *)reverCharacter:(NSString *)srcStr{    NSInteger len = [srcStr length];    unichar ch;    NSString *dest = @"";    for (NSInteger i=0; i<len;i++) {        ch = [srcStr characterAtIndex:i];        if (ch >= 'a' && ch <= 'z') {            ch = ch-32;        }        else{            ch = ch + 32;        }        dest = [dest stringByAppendingFormat:@"%C",ch];    }    return dest;}// 替换字符串srcStr中从startKey到endKey之间的字符串//返回结果//比如输入srcStr=@"abc da abbc cde f" startKey=@"da" endKey=@"cde" 输出 @"abbc"+ (NSString *)replaceString:(NSString *)srcStr betweenStartKey:(NSString* )startKey  andEndKey:(NSString*)endKey{    NSRange rangeStart = [srcStr rangeOfString:startKey];    NSRange rangeEnd = [srcStr rangeOfString:endKey];    NSString *subStr = [srcStr substringWithRange:NSMakeRange(rangeStart.location+rangeStart.length+1, rangeEnd.location-rangeStart.location-rangeStart.length-2)];    return subStr;}// 返回字符串srcStr中出现子串findStr的次数//helloworldhelloworldhello  hello+(NSInteger)subStringCount:(NSString*)srcStr findStr:(NSString*)findStr{    NSString *dest = srcStr;    NSRange range;    NSInteger count = 0;    range = [dest rangeOfString:findStr];    while (range.location != NSNotFound) {        count++;        dest = [dest substringFromIndex:range.location+[findStr length]];        range = [dest rangeOfString:findStr];    }        return count;}@end


main.m主方法:

////  main.m//  IOS150610_OC_字符串练习////  Created by qianfeng on 15/6/10.//  Copyright (c) 2015年 Peng Junlong. All rights reserved.//#import <Foundation/Foundation.h>#import "StringOperation.h"int main(int argc, const char * argv[]) {    @autoreleasepool {             //        3. 现有字符串@"Welcome to Bejing."//        提取第3个到第6个字符.        NSString *subStr4 = [str4 substringWithRange:NSMakeRange(2, 4)];        NSLog(@"subString = %@",subStr4);        //        4. 现有字符串@"When I was young, I loved a girl on neighbor class."//        要求不通过点数,从was提取到girl。        NSString *str5 = @"When I was young, I loved a girl on neighbor class.";        NSRange rangeWas = [str5 rangeOfString:@"was"];        NSRange rangeGirl = [str5 rangeOfString:@"girl"];        if(rangeWas.location != NSNotFound && rangeGirl.location != NSNotFound && rangeWas.location < rangeGirl.location)        {            str5 = [str5 substringWithRange:NSMakeRange(rangeWas.location, rangeGirl.location-rangeWas.location+rangeGirl.length)];        }        NSLog(@"substring = %@",str5);        //        Welcome to Qianfeng.//        删除to这个词。        NSMutableString *str6 = [NSMutableString stringWithString: @"Welcome to Qianfeng."];        NSRange range1 = [str6 rangeOfString:@"to"];        [str6 deleteCharactersInRange:range1];        NSLog(@"str6 = %@",str6);        //        6. Hello world两个单词间插入China        NSMutableString *str7 = [NSMutableString stringWithUTF8String:"Hello world"];        [str7 insertString:@"China" atIndex:6];        NSLog(@"str7= %@",str7);        //        7. 现有字符串@"When I was young, I loved a girl on neighbor class. "//        从young到girl,改成@"teacher, I rather teaching the students"        NSString *str8 = @"When I was young, I loved a girl on neighbor class. ";        NSRange rangeYoung = [str8 rangeOfString:@"young"];        NSRange rangeG = [str8 rangeOfString:@"girl"];        if(rangeYoung.location != NSNotFound && rangeG.location != NSNotFound && rangeYoung.location < rangeG.location)        {            str8 = [str8 stringByReplacingCharactersInRange:NSMakeRange(rangeYoung.location, rangeG.location-rangeYoung.location                                                                                           +rangeG.length)                                                 withString:@"teacher, I rather teaching the students"];        }        NSLog(@"str8 = %@",str8);                //将传入的字符串逆序        //比如输入 @"abcdef"输出@"fedcba"        //+(NSString*)reveserString:(NSString*)srcStr;                NSLog(@"%@",[StringOperation reveserString:@"abcdef"]);                NSLog(@"%@",[StringOperation compressString:@"aaabbbcceaaaad"]);                NSLog(@"%@",[StringOperation sortString:@"aczabczab"]);                NSLog(@"%@",[StringOperation reverCharacter:@"aBCdEfGA"]);                NSLog(@"%@",[StringOperation replaceString:@"abc da abbc cde f" betweenStartKey:@"da" andEndKey:@"cde"]);                NSLog(@"%ld",[StringOperation subStringCount:@"helloworldhelloworldhello" findStr:@"hello"]);        }
<span style="white-space:pre"></span>return 0;
}



1 0