OC Foundation框架—字符串操作方法及习题
2015-12-11 20:56
375 查看
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 不可变字符串 1.创建字符串 实例方法(3种) 类方法(3种) 2.不可变字符串: 统计长度(2种) 索引提取 (3种) 比较 (3种) 查照字符串位置(1种) 判断前后缀 转换数字 大小写转换 字符串提取 可变字符串 1.创建可变字符串 2.可变字符串的操作 增(3种)删(1种)改(1种)查 */ //实例方法(3种) NSString *str1 = @"123456789"; NSString *str2 = [[NSString alloc] initWithFormat:@"%d4567",3]; // NSString *str3 = [[NSString alloc] initWithString:str2];//传的是对象 //类方法(3种) NSString *str4 = [NSString stringWithFormat:@"Abc%@eFg",@"d"]; // NSString *str5 = [NSString stringWithString:str4]; //统计长度(2种) NSUInteger length = [str1 length]; NSUInteger length1 = str1.length; NSLog(@"%lu %lu",length,length1); //索引提取 (3种) NSString *newStr1 = [str1 substringFromIndex:3]; NSLog(@"%@",newStr1); NSString *newStr2 = [str1 substringToIndex:3]; NSLog(@"%@",newStr2); NSString *newStr3 = [str1 substringWithRange:NSMakeRange(3, 4)]; NSLog(@"%@",newStr3); //比较 (3种) if ([str1 isEqualToString:str2]) { NSLog(@"相同"); }else NSLog(@"不相同"); if ([str1 compare:str2] == NSOrderedAscending) { NSLog(@"str1>str2"); } else if ([str1 compare:str2] == NSOrderedDescending) NSLog(@"str1<str2"); else if ([str1 compare:str2] == NSOrderedSame) NSLog(@"=="); if ([str1 caseInsensitiveCompare:str2] == NSOrderedAscending) { NSLog(@"str1>str2"); } else if ([str1 caseInsensitiveCompare:str2] == NSOrderedDescending) NSLog(@"str1<str2"); else if ([str1 caseInsensitiveCompare:str2] ==NSOrderedSame) NSLog(@"=="); // 查找字符串位置 NSRange range = [str1 rangeOfString:str2]; if (range.location != NSNotFound) { NSLog(@"location:%lu length:%lu",range.location,range.length); } else { NSLog(@"没找到"); } //判断前后缀(2种) BOOL flag = [str4 hasPrefix:@"abc"]; NSLog(@"%d",flag); BOOL anotherFlag = [str4 hasSuffix:@"fg"]; NSLog(@"%d",anotherFlag); //转换数字(4种) int number = [str1 intValue]; NSLog(@"%d",number); NSInteger number1 = [str1 intValue]; NSLog(@"%ld",number1); NSString *str6 = @"1234567.89"; double number2 = [str6 doubleValue]; NSLog(@"%lf",number2); //大小写转换 NSString *upStr = [str4 uppercaseString]; NSLog(@"%@",upStr); NSString *lowStr = [str4 lowercaseString]; NSLog(@"%@",lowStr); NSString *tempStr = [str4 capitalizedString]; NSLog(@"%@",tempStr); // 可变字符串 // 实例方法 NSMutableString *muStr1 = [[NSMutableString alloc] initWithFormat:@"1%d3",2]; NSMutableString *muStr2 = [[NSMutableString alloc] initWithString:@"123"]; NSMutableString *muStr3 = [[NSMutableString alloc] initWithCapacity:10]; // 类方法 NSMutableString *muStr4 = [NSMutableString stringWithFormat:@"4%d6",5]; NSMutableString *muStr5 = [NSMutableString stringWithString:@"123"]; NSMutableString *muStr6 = [NSMutableString stringWithCapacity:10]; //增(3种) [muStr1 appendFormat:@"%d",456]; NSLog(@"%@",muStr1); [muStr2 appendString:@"789"]; NSLog(@"%@",muStr2); [muStr3 insertString:@"abcdefghijklmn" atIndex:0]; NSLog(@"%@",muStr3); [muStr4 insertString:@"abcdefghijklmn" atIndex:2]; NSLog(@"%@",muStr4); //删除 [muStr5 deleteCharactersInRange:NSMakeRange(2, 1)]; NSLog(@"%@",muStr5); //改 [muStr6 replaceCharactersInRange:NSMakeRange(0, 0) withString:@"1234567890"]; NSLog(@"%@",muStr6); [muStr5 replaceCharactersInRange:NSMakeRange(0, 1) withString:@"abcd"]; NSLog(@"%@",muStr5);
#import <Foundation/Foundation.h> @interface MyStringTools : NSObject /* 1.创建一个类,要求: (1)、定义一个方法,能完成字符串逆序输出的操作 (2)、定义一个方法,能删除某字符串中的指定字串 myStringTool delete:(NSString*) InString:(NSString*) (3)、定义一个方法,能查找某字符串在某字符串中出现的次数 (4)、定义一个方法,能传入两个字符串,将这个字符串组合成一个新的对称字符串返回 (5)、定义一个方法,能将原字符串进行小写转大写,大写转小写 (6)、定义一个方法,能压缩传入的字符串 (比如输入@"aaabbbcceaa" 输出@"3a3b2c1e2a") (7)、定义一个方法,能对传入的字符串按照字母顺序进行排列 (比如输入@"aczabczab" 输出@"aaabbcczz”) (8)、定义一个方法,能够替换某字符串中的某个指定字串 (9)、定义一个方法,能够获取指定字符串长度。 */ //定义一个方法,能完成字符串逆序输出的操作 +(NSString *) reverseOrder:(NSString *) str1; //定义一个方法,能删除某字符串中的指定字串 +(NSString *) deleteTheString:(NSString *) str1 inString:(NSString *) str2; //定义一个方法,能查找某字符串在某字符串中出现的次数 +(NSInteger) findNumberOfString:(NSString *) str1 inString:(NSString *) str2; //定义一个方法,能传入两个字符串,将这个字符串组合成一个新的对称字符串返回 +(NSString *) makeUpString:(NSString *) str1 andString:(NSString *) str2; //定义一个方法,能将原字符串进行小写转大写,大写转小写 +(NSString *) convertLetters:(NSString *) str1 andCase:(NSString *) mycase; //定义一个方法,能压缩传入的字符串 +(NSString *) compressString:(NSString *) str1; //定义一个方法,能对传入的字符串按照字母顺序进行排列 +(NSString *) theStringOrder:(NSString *) str1; //定义一个方法,能够替换某字符串中的某个指定字串 +(NSString *) replaceTheString:(NSString *) str1 fromString:(NSString *) str2 toString:(NSString *) str3; //定义一个方法,能够获取指定字符串长度 +(NSInteger) obtainTheLength:(NSString *) str1; @end #import "MyStringTools.h" @implementation MyStringTools +(NSString *) reverseOrder:(NSString *) str1 { NSMutableString *string = [NSMutableString stringWithString:str1]; NSMutableString *mutableString =[NSMutableString stringWithString:str1]; for (int i=0; i<string.length; i++) { //方法1 NSString *subStr1 = [string substringWithRange:NSMakeRange(i, 1)]; NSString *subStr2 = [string substringWithRange: NSMakeRange(string.length - i-1, 1)]; // 取长度和范围 NSRange range1 = [string rangeOfString:subStr1]; NSRange range2 = [string rangeOfString:subStr2]; [mutableString replaceCharactersInRange:range1 withString:subStr2]; [mutableString replaceCharactersInRange:range2 withString:subStr1]; } return mutableString; //方法2 // NSString *tempStr = [string substringFromIndex:string.length-1]; // // [string insertString:tempStr atIndex:i]; // // [string deleteCharactersInRange:NSMakeRange(string.length-1,1)]; // } // return string } +(NSString *) deleteTheString:(NSString *) str1 inString:(NSString *) str2 { NSMutableString *string = [NSMutableString stringWithString:str2]; NSRange range = [string rangeOfString:str1]; if (range.location !=NSNotFound) { [string deleteCharactersInRange:range]; } else NSLog(@"没有发现字符"); return string; } +(NSInteger) findNumberOfString:(NSString *) str1 inString:(NSString *) str2 { int i,count=0; NSMutableString *string = [NSMutableString stringWithString:str2]; for (i=0; i<string.length; i++) { NSRange range = [string rangeOfString:str1]; if (range.location !=NSNotFound) { [string deleteCharactersInRange:range]; count++; } } return count; } +(NSString *) makeUpString:(NSString *) str1 andString:(NSString *) str2 { NSMutableString *string = [NSMutableString stringWithString:str2]; [string appendString:str1]; for (NSInteger i=string.length-1; i>=0; i--) { [string appendString:[string substringWithRange:NSMakeRange(i, 1)]]; } return string; } +(NSString *) convertLetters:(NSString *) str1 andCase:(NSString *) mycase { NSMutableString *string = [NSMutableString stringWithString:str1]; if ([mycase isEqualToString:@"大写"]) { return [string uppercaseString]; } else return [string lowercaseString]; } +(NSString *) compressString:(NSString *) str1 { int i; NSMutableString *string = [NSMutableString stringWithString:str1]; NSMutableString *newString; NSMutableString *newString1 = [NSMutableString stringWithString:@""]; for (i=0; i<string.length; i++) { NSString *tempStr = [string substringWithRange:NSMakeRange(0, 1)]; int count=0; for (int j=0; j<string.length; j++) { NSString *tempStr1 = [string substringWithRange:NSMakeRange(0, 1)]; if ([tempStr1 isEqualToString:tempStr]) { [string deleteCharactersInRange:NSMakeRange(0, 1)]; count++; } } newString = [NSMutableString stringWithFormat:@"%d%@",count,tempStr]; [newString1 appendString:newString]; } return newString1; } +(NSString *) theStringOrder:(NSString *) str1 { NSMutableString *string = [NSMutableString stringWithString:str1]; for (int i=0; i<string.length-1; i++) { for (int j=0; j<string.length-1; j++) { NSString *tempStr1=[string substringWithRange:NSMakeRange(j, 1)]; NSString *tempStr2=[string substringWithRange:NSMakeRange(j+1, 1)]; NSRange range1 = [string rangeOfString:tempStr1]; NSRange range2 = [string rangeOfString:tempStr2]; if ([tempStr1 compare:tempStr2]==NSOrderedAscending) { [string replaceCharactersInRange:range2 withString:tempStr1]; [string replaceCharactersInRange:range1 withString:tempStr2]; } } } return string; } +(NSString *) replaceTheString:(NSString *) str1 fromString:(NSString *) str2 toString:(NSString *) str3 { NSMutableString *string = [NSMutableString stringWithString:str2]; NSRange range = [string rangeOfString:str1]; [string replaceCharactersInRange:range withString:str3]; return string; } +(NSInteger) obtainTheLength:(NSString *) str1 { return str1.length; } @end #import <Foundation/Foundation.h> #import "MyStringTools.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSString *mystring=[NSString stringWithFormat:@"abcdef"]; NSLog(@"%@",[MyStringTools reverseOrder:mystring]); NSLog(@"%@",[MyStringTools deleteTheString:@"bc" inString:mystring]); NSLog(@"%ld",[MyStringTools findNumberOfString:@"bc" inString:@"abcdfebcbbc"]); NSLog(@"%@",[MyStringTools makeUpString:@"abcdef" andString:@"gh"]); NSLog(@"%@",[MyStringTools convertLetters:@"aBcDeF" andCase:@"大写"]); NSLog(@"%@",[MyStringTools compressString:@"hhfffkkkkkiinil"]); NSLog(@"%@",[MyStringTools theStringOrder:@"sadcbfw"]); NSLog(@"%@",[MyStringTools replaceTheString:@"sdf" fromString:@"asdfghjkl" toString:@"abc"]); NSLog(@"%lu",[MyStringTools obtainTheLength:@"qwert"]); } return 0; }
相关文章推荐
- leetcode Remove Element
- nginx忽略favicon.ico日志
- ThinkPHP--改变状态--某个键值的来回切换操作
- HDU 2236 无题II 二分+最大匹配
- PAT乙级——1012 D进制的A+B (C/C++)
- mysql 分表查询
- 关于WebView顶部的滚动条简单但记录下供以后使用
- C++ vector
- leetcode Implement strStr()
- PAT乙级 个位数统计 (15)
- Java 同步方式 (1) —— synchronized 和 Java 同步方式 (2) —— wait和notify/notifyall (很全面)
- div+css 中相对定位于绝对定位的详解
- Spring学习笔记(十二):关于Date的转换
- C# static函数问题
- 获取编译学习笔记 (六)—— si、di,双环
- Spark 1.0.0版本发布
- js中Date日期初始化方法
- mos管使用小知识
- bzoj:1687;poj 2434:[Usaco2005 Open]Navigating the City 城市交通
- Java中Synchronized的用法 (写的非常好,非常清晰)