OC一些字符串的練習

//

//  main.m

//  字符串處理

//

//  Created by qianfeng on 15-9-15.

//  Copyright (c) 2015 千鋒. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "MyNSString.h"

////1. 現在有兩個數字分別是123,1.23 把這兩個數字轉爲字符串

//int main(int argc, const char * argv[])

//{

//    @autoreleasepool

//    {

//        int i=123;

//        float f=1.23;

//        NSString *intString = [NSString stringWithFormat:@"%d",i];

//        NSLog(@"%@",intString);

//        NSString *floatString = [NSString stringWithFormat:@"%f",f];

//        NSLog(@"%@",floatString);

//    }

//    return 0;

//}


////2. 現在有一個C的字符串”I love you very much!”,請把它轉爲一個OC的字符串

//int main()

//{

//    @autoreleasepool {

//        char *s = "I love you very much!";

//        NSString *str = [NSString stringWithUTF8String:s];

//        NSLog(@"%@",str);

//    }

//}


///*

// 3. 有三個字符串,分別是

//str1 = @"My name is" str2 = @"Lilei" str3 = @"I am " int age = 20;

//拼接在⼀一起,生成⼀一個新字符串,str4.使語句通順

//*/

//int main()

//{

//    @autoreleasepool {

//        NSString *str1 = @"My name is";

//        NSString *str2 = @" Lilei";

//        NSString *str3 = @" I am ";

//        int age = 20;

//        NSString *str = [NSString stringWithFormat:@"%d",age];

//        NSMutableString *str4 = [[NSMutableString alloc]init];

//        [str4 appendString:str1];

//        [str4 appendString:str2];

//        [str4 appendString:str3];

//        [str4 appendString:str];

//        NSLog(@"%@",str4);

//    }

//}



////4. 輸入兩個字符串,然後不區分大小寫進行比較,輸出比較結果; 要求實現一個字符串比較函數,不區分大小寫進行比較,如果第一個字符串 大輸出1,相等輸出0,小於輸出-1

//int main()

//{

//    @autoreleasepool {

//        NSString *str1 = @"abc";

//        NSString *str2 = @"Abc";

//        NSComparisonResult ret = [str1 caseInsensitiveCompare:str2];

//        if(ret == NSOrderedSame)

//        {

//            NSLog(@"0");

//        }

//        else if(ret == NSOrderedDescending)

//        {

//            NSLog(@"1");

//        }

//        else

//        {

//            NSLog(@"-1");

//        }

//    }

//}


////5.Welcome to Qianfeng. 查找feng在字符串中的範圍;

//int main()

//{

//    @autoreleasepool {

//        NSString *src = @"Welcome to Qianfeng.";

//        NSString *sreach = @"feng";

//        NSRange range = [src rangeOfString:sreach];

//        NSLog(@"range.loctaion=%ld,range.length=%ld",range.location,range.length);

//    }

//}


////6.Welcome to Bejing.

////提取第3個到第6個字符.

//int main()

//{

//    @autoreleasepool {

//        NSString *src = @"Welcome to Bejing.";

//        NSString *ret = [src substringWithRange:NSMakeRange(3, 3)];

//        NSLog(@"%@",ret);

//    }

//}


////7.When I was young, I'd listen to the radio, waiting for my favorite songs. was提取到radio;不許數。

//int main()

//{

//    NSString *src = @"When I was young, I'd listen to the radio, waiting for my favorite songs.";

//    NSRange startRange = [src rangeOfString:@"was"];

//    NSRange endRange = [src rangeOfString:@"radio"];

//    NSString *ret = [src substringWithRange:NSMakeRange(startRange.location, endRange.length+endRange.location-startRange.location)];

//    NSLog(@"%@",ret);

//}


////8.I love iOS.刪除love這個詞。

//int main()

//{

//    @autoreleasepool {

//        char *s = "I love iOS.";

//        NSMutableString *src = [NSMutableString stringWithUTF8String:s];

//        NSRange range = [src rangeOfString:@"love"];

//        [src deleteCharactersInRange:range];

//        NSLog(@"%@",src);

//    }

//}


////10.Hello world Hello 後插入 Holly

//int main()

//{

//    @autoreleasepool {

//        char *s = "Hello world";

//        NSMutableString *src = [NSMutableString stringWithUTF8String:s];

//        NSRange range = [src rangeOfString:@"Hello"];

//        [src insertString:@"Holly" atIndex:range.length+range.location];

//        NSLog(@"%@",src);

//    }

//}


////11.When I was young, I loved a girl in neighbor class.younggirl,改成 (replace) teacher, I rather teaching the students

//int main()

//{

//    @autoreleasepool {

//        NSMutableString *src = [NSMutableString stringWithString:@"When I was young, I loved a girl in neighbor class."];

//        NSRange startRange = [src rangeOfString:@"young"];

//        NSRange endRange = [src rangeOfString:@"girl"];

//        [src replaceCharactersInRange:NSMakeRange(startRange.location, endRange.location+endRange.length-startRange.location) withString:@"teacher, I rather teaching the students"];

//        NSLog(@"%@",src);

//    }

//}


////14. 從終端輸入一個文件的路徑,要求把文件的內容顯示到屏幕上

//int main()

//{

//    @autoreleasepool {

//        NSString *path = @"/Users/qianfeng/Desktop/Objective-c/OC練習/字符串處理/字符串處理/File";

//        NSString *ret = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

//        NSLog(@"%@",ret);

//    }

//}


///*

// 15.字符串處理

//將傳入的字符串逆序

//比如輸入 @"abcdef"輸出@"fedcba"

//+(NSString*)reveserString:(NSString*)srcStr;

// */

//int main()

//{

//    @autoreleasepool {

//        NSString *str = @"abcdef將傳入的字符串逆序";

//        NSString *ret = [MyNSString reveserString:str];

//        NSLog(@"%@",ret);

//    }

//}


///*

// //壓縮字符串

// //比如輸入@"aaabbbcceaa" 輸出@"3a3b2c1e2a"

// +(NSString*)compString:(NSString*)srcStr;

// */

//int main()

//{

//    @autoreleasepool {

//        NSString *str = @"aaabbbcceaa";

//        NSString *ret = [MyNSString compString:str];

//        NSLog(@"%@",ret);

//    }

//}


///*

// //對字符串按字母順序進行排序

// //比如輸入@"aczabczab"  輸出@"aaabbcczz"

// +(NSString*)sortString:(NSString*)srcStr;

// */

//int main()

//{

//    @autoreleasepool {

//        NSString *str = @"aczabczab";

//        NSString *ret = [MyNSString sortString:str];

//        NSLog(@"%@",ret);

//    }

//}


///*

// //將原字符串進行小寫轉大寫,大寫轉小寫

// //比如輸入 @"aBCdEfGA" 輸出 @"AbcDeFga"

// +(NSString *)reveserChacter:(NSString*)srcStr;

// */

//int main()

//{

//    @autoreleasepool {

//        NSString *str = @"aBCdEfGA";

//        NSString *ret = [MyNSString reveserChacter:str];

//        NSLog(@"%@",ret);

//    }

//}


///*

// // 替換字符串srcStr中從startKeyendKey之間的字符串//返回結果

// //比如輸入srcStr=@"abcdaabbccdef" startKey=@"da" endKey=@"cde" 輸出 @"abbc"

// +(NSString *)replaceString:(NSString *)srcStr betweenStartKey:(NSString* )startKey  andEndKey:(NSString*)endKey;

// */

//int main()

//{

//    @autoreleasepool {

//        NSString *srcStr = @"abcdaabbccdef";

//        NSString *startKey = @"da";

//        NSString *endKey = @"cde";

//        NSString *ret = [MyNSString replaceString:srcStr betweenStartKey:startKey andEndKey:endKey];

//        NSLog(@"%@",ret);

//    }

//}



#import <Foundation/Foundation.h>


@interface MyNSString : NSObject


+(NSString*)reveserString:(NSString*)srcStr;


+(NSString*)compString:(NSString*)srcStr;


+(NSString*)sortString:(NSString*)srcStr;


+(NSString *)reveserChacter:(NSString*)srcStr;


+(NSString *)replaceString:(NSString *)srcStr betweenStartKey:(NSString* )startKey  andEndKey:(NSString*)endKey;


@end


#import "MyNSString.h"


@implementation MyNSString


+(NSString*)reveserString:(NSString*)srcStr

{

    NSString *ret = @"";

    for(NSInteger i=[srcStr length]-1;i>=0;i--)

    {

        unichar ch = [srcStr characterAtIndex:i];

        ret = [ret stringByAppendingFormat:@"%C",ch];

    }

    return ret;

}


+(NSString*)compString:(NSString*)srcStr

{

    NSString *ret = @"";

    NSInteger count=0;

    for(NSInteger i=0;i<[srcStr length];i++)

    {

        unichar ch = [srcStr characterAtIndex:i];

        if((i == [srcStr length]-1) || (ch != [srcStr characterAtIndex:i+1]))

        {

            count++;

            ret = [ret stringByAppendingFormat:@"%ld%C",count,ch];

            count = 0;

        }

        else

        {

            count++;

        }

    }

    return  ret;

}


+(NSString*)sortString:(NSString*)srcStr

{

    NSString *ret =srcStr;

    for(NSInteger i=0;i<[srcStr length]-1;i++)

    {

        for(NSInteger j=0;j<[srcStr length]-1-i;j++)

        {

            unichar jChar = [ret characterAtIndex:j];

            unichar jjChar = [ret characterAtIndex:j+1];

            NSString *jStr = [NSString stringWithFormat:@"%C",jChar];

            NSString *jjStr = [NSString stringWithFormat:@"%C",jjChar];

            NSComparisonResult com = [jStr compare:jjStr];

            if(com == NSOrderedDescending)

            {

                ret = [ret stringByReplacingCharactersInRange:NSMakeRange(j,1) withString:jjStr];

                ret = [ret stringByReplacingCharactersInRange:NSMakeRange(j+1,1) withString:jStr];

            }

        }

    }

    return  ret;

}


+(NSString *)reveserChacter:(NSString*)srcStr

{

    NSString *ret = srcStr;

    for(NSInteger i=0;i<[srcStr length];i++)

    {

        unichar ch = [srcStr characterAtIndex:i];

        NSString *s = [NSString stringWithFormat:@"%C",ch];

        if([[s lowercaseString] isEqualToString:s])

        {

            ret = [ret stringByReplacingCharactersInRange:NSMakeRange(i, 1) withString:[s uppercaseString]];

        }

        else

        {

            ret = [ret stringByReplacingCharactersInRange:NSMakeRange(i, 1) withString:[s lowercaseString]];

        }

    }

    return ret;

}


 +(NSString *)replaceString:(NSString *)srcStr betweenStartKey:(NSString* )startKey  andEndKey:(NSString*)endKey

{

    NSString *ret = srcStr;

    NSRange startRange = [srcStr rangeOfString:startKey];

    NSRange endRange = [srcStr rangeOfString:endKey];

    ret = [ret substringWithRange:NSMakeRange(startRange.location+startRange.length, endRange.location-startRange.location-startRange.length)];

    return ret;

}

@end



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章