OC Foundation框架—字符串操作方法及习题

  1 #import <Foundation/Foundation.h>
  2
  3 int main(int argc, const char * argv[]) {
  4     @autoreleasepool {
  8         /*
  9          不可变字符串
 10          1.创建字符串
 11             实例方法(3种)
 12             类方法(3种)
 13          2.不可变字符串:
 14            统计长度(2种)
 15            索引提取 (3种)
 16            比较 (3种)
 17            查照字符串位置(1种)
 18            判断前后缀
 19            转换数字
 20            大小写转换
 21            字符串提取
 22
 23          可变字符串
 24          1.创建可变字符串
 25          2.可变字符串的操作
 26          增(3种)删(1种)改(1种)查
 27
 28
 29          */
 30
 31         //实例方法(3种)
 32         NSString *str1 = @"123456789";
 33         NSString *str2 = [[NSString alloc] initWithFormat:@"%d4567",3];
 34 //        NSString *str3 = [[NSString alloc] initWithString:str2];//传的是对象
 35
 36         //类方法(3种)
 37         NSString *str4 = [NSString stringWithFormat:@"Abc%@eFg",@"d"];
 38 //        NSString *str5 = [NSString stringWithString:str4];
 39
 40
 41
 42         //统计长度(2种)
 43         NSUInteger length = [str1 length];
 44         NSUInteger length1 = str1.length;
 45         NSLog(@"%lu %lu",length,length1);
 46
 47
 48         //索引提取 (3种)
 49         NSString *newStr1 = [str1 substringFromIndex:3];
 50         NSLog(@"%@",newStr1);
 51         NSString *newStr2 = [str1 substringToIndex:3];
 52         NSLog(@"%@",newStr2);
 53         NSString *newStr3 = [str1 substringWithRange:NSMakeRange(3, 4)];
 54         NSLog(@"%@",newStr3);
 55
 56
 57         //比较 (3种)
 58         if ([str1 isEqualToString:str2]) {
 59             NSLog(@"相同");
 60         }else
 61             NSLog(@"不相同");
 62
 63
 64
 65         if ([str1 compare:str2] == NSOrderedAscending) {
 66             NSLog(@"str1>str2");
 67         }
 68         else if ([str1 compare:str2] == NSOrderedDescending)
 69             NSLog(@"str1<str2");
 70         else if ([str1 compare:str2] == NSOrderedSame)
 71             NSLog(@"==");
 72
 73
 74
 75         if ([str1 caseInsensitiveCompare:str2] == NSOrderedAscending) {
 76             NSLog(@"str1>str2");
 77         }
 78         else if ([str1 caseInsensitiveCompare:str2] == NSOrderedDescending)
 79             NSLog(@"str1<str2");
 80         else if ([str1 caseInsensitiveCompare:str2] ==NSOrderedSame)
 81             NSLog(@"==");
 82
 83
 84         // 查找字符串位置
 85         NSRange range = [str1 rangeOfString:str2];
 86         if (range.location != NSNotFound) {
 87             NSLog(@"location:%lu  length:%lu",range.location,range.length);
 88
 89         } else {
 90             NSLog(@"没找到");
 91         }
 92
 93
 94         //判断前后缀(2种)
 95         BOOL flag = [str4 hasPrefix:@"abc"];
 96         NSLog(@"%d",flag);
 97
 98         BOOL anotherFlag = [str4 hasSuffix:@"fg"];
 99         NSLog(@"%d",anotherFlag);
100
101
102         //转换数字(4种)
103         int number = [str1 intValue];
104         NSLog(@"%d",number);
105
106         NSInteger number1 = [str1 intValue];
107         NSLog(@"%ld",number1);
108
109         NSString *str6 = @"1234567.89";
110         double number2 = [str6 doubleValue];
111         NSLog(@"%lf",number2);
112
113         //大小写转换
114         NSString *upStr = [str4 uppercaseString];
115         NSLog(@"%@",upStr);
116         NSString *lowStr = [str4 lowercaseString];
117         NSLog(@"%@",lowStr);
118         NSString *tempStr = [str4 capitalizedString];
119         NSLog(@"%@",tempStr);
120
121
122
123
124         // 可变字符串
125         // 实例方法
126         NSMutableString *muStr1 = [[NSMutableString alloc]
127                                    initWithFormat:@"1%d3",2];
128
129         NSMutableString *muStr2 = [[NSMutableString alloc]
130                                    initWithString:@"123"];
131
132         NSMutableString *muStr3 = [[NSMutableString alloc]
133                                    initWithCapacity:10];
134
135         // 类方法
136         NSMutableString *muStr4 = [NSMutableString stringWithFormat:@"4%d6",5];
137
138         NSMutableString *muStr5 = [NSMutableString stringWithString:@"123"];
139
140         NSMutableString *muStr6 = [NSMutableString stringWithCapacity:10];
141
142
143         //增(3种)
144
145         [muStr1 appendFormat:@"%d",456];
146         NSLog(@"%@",muStr1);
147
148         [muStr2 appendString:@"789"];
149         NSLog(@"%@",muStr2);
150
151         [muStr3 insertString:@"abcdefghijklmn" atIndex:0];
152         NSLog(@"%@",muStr3);
153
154         [muStr4 insertString:@"abcdefghijklmn" atIndex:2];
155         NSLog(@"%@",muStr4);
156
157
158
159         //删除
160         [muStr5 deleteCharactersInRange:NSMakeRange(2, 1)];
161         NSLog(@"%@",muStr5);
162
163         //改
164         [muStr6 replaceCharactersInRange:NSMakeRange(0, 0) withString:@"1234567890"];
165         NSLog(@"%@",muStr6);
166
167         [muStr5 replaceCharactersInRange:NSMakeRange(0, 1) withString:@"abcd"];
168         NSLog(@"%@",muStr5);
  1 #import <Foundation/Foundation.h>
  2
  3 @interface MyStringTools : NSObject
  4
  5 /*
  6
  7  1.创建一个类,要求:
  8  (1)、定义一个方法,能完成字符串逆序输出的操作
  9  (2)、定义一个方法,能删除某字符串中的指定字串
 10
 11     myStringTool  delete:(NSString*) InString:(NSString*)
 12
 13  (3)、定义一个方法,能查找某字符串在某字符串中出现的次数
 14  (4)、定义一个方法,能传入两个字符串,将这个字符串组合成一个新的对称字符串返回
 15  (5)、定义一个方法,能将原字符串进行小写转大写,大写转小写
 16  (6)、定义一个方法,能压缩传入的字符串
 17  (比如输入@"aaabbbcceaa" 输出@"3a3b2c1e2a")
 18  (7)、定义一个方法,能对传入的字符串按照字母顺序进行排列
 19  (比如输入@"aczabczab"  输出@"aaabbcczz”)
 20  (8)、定义一个方法,能够替换某字符串中的某个指定字串
 21  (9)、定义一个方法,能够获取指定字符串长度。
 22  */
 23
 24 //定义一个方法,能完成字符串逆序输出的操作
 25 +(NSString *) reverseOrder:(NSString *) str1;
 26
 27 //定义一个方法,能删除某字符串中的指定字串
 28 +(NSString *) deleteTheString:(NSString *) str1
 29                      inString:(NSString *) str2;
 30
 31 //定义一个方法,能查找某字符串在某字符串中出现的次数
 32 +(NSInteger) findNumberOfString:(NSString *) str1
 33                        inString:(NSString *) str2;
 34
 35 //定义一个方法,能传入两个字符串,将这个字符串组合成一个新的对称字符串返回
 36 +(NSString *) makeUpString:(NSString *) str1
 37                  andString:(NSString *) str2;
 38
 39 //定义一个方法,能将原字符串进行小写转大写,大写转小写
 40 +(NSString *) convertLetters:(NSString *) str1 andCase:(NSString *) mycase;
 41
 42 //定义一个方法,能压缩传入的字符串
 43 +(NSString *) compressString:(NSString *) str1;
 44
 45 //定义一个方法,能对传入的字符串按照字母顺序进行排列
 46 +(NSString *) theStringOrder:(NSString *) str1;
 47
 48 //定义一个方法,能够替换某字符串中的某个指定字串
 49 +(NSString *) replaceTheString:(NSString *) str1
 50                     fromString:(NSString *) str2
 51                       toString:(NSString *) str3;
 52
 53 //定义一个方法,能够获取指定字符串长度
 54 +(NSInteger) obtainTheLength:(NSString *) str1;
 55 @end
 56
 57
 58
 59
 60
 61
 62
 63 #import "MyStringTools.h"
 64
 65 @implementation MyStringTools
 66
 67 +(NSString *) reverseOrder:(NSString *) str1
 68 {
 69     NSMutableString *string = [NSMutableString stringWithString:str1];
 70     NSMutableString *mutableString =[NSMutableString stringWithString:str1];
 71
 72
 73     for (int i=0; i<string.length; i++) {
 74         //方法1
 75         NSString *subStr1 = [string substringWithRange:NSMakeRange(i, 1)];
 76         NSString *subStr2 = [string substringWithRange:
 77                              NSMakeRange(string.length - i-1, 1)];
 78         // 取长度和范围
 79         NSRange range1 = [string rangeOfString:subStr1];
 80         NSRange range2 = [string rangeOfString:subStr2];
 81
 82         [mutableString replaceCharactersInRange:range1 withString:subStr2];
 83         [mutableString replaceCharactersInRange:range2
 84                                      withString:subStr1];
 85     }
 86         return mutableString;
 87
 88         //方法2
 89 //        NSString *tempStr = [string substringFromIndex:string.length-1];
 90 //
 91 //        [string insertString:tempStr atIndex:i];
 92 //
 93 //        [string deleteCharactersInRange:NSMakeRange(string.length-1,1)];
 94 //         }
 95 //    return string
 96
 97 }
 98
 99 +(NSString *) deleteTheString:(NSString *) str1
100                      inString:(NSString *) str2
101 {
102     NSMutableString *string = [NSMutableString stringWithString:str2];
103
104     NSRange range = [string rangeOfString:str1];
105
106     if (range.location !=NSNotFound) {
107         [string deleteCharactersInRange:range];
108     }
109     else
110         NSLog(@"没有发现字符");
111     return string;
112 }
113
114 +(NSInteger) findNumberOfString:(NSString *) str1
115                        inString:(NSString *) str2
116 {
117     int i,count=0;
118
119     NSMutableString *string = [NSMutableString stringWithString:str2];
120
121     for (i=0; i<string.length; i++) {
122
123         NSRange range = [string rangeOfString:str1];
124
125         if (range.location !=NSNotFound) {
126         [string deleteCharactersInRange:range];
127             count++;
128         }
129     }
130     return count;
131 }
132
133
134 +(NSString *) makeUpString:(NSString *) str1
135                  andString:(NSString *) str2
136 {
137     NSMutableString *string = [NSMutableString stringWithString:str2];
138     [string appendString:str1];
139
140     for (NSInteger i=string.length-1; i>=0; i--) {
141         [string appendString:[string substringWithRange:NSMakeRange(i, 1)]];
142
143     }
144     return string;
145 }
146
147 +(NSString *) convertLetters:(NSString *) str1 andCase:(NSString *) mycase
148 {
149     NSMutableString *string = [NSMutableString stringWithString:str1];
150
151     if ([mycase isEqualToString:@"大写"]) {
152         return [string uppercaseString];
153     }
154     else
155         return [string lowercaseString];
156 }
157
158 +(NSString *) compressString:(NSString *) str1
159 {
160     int i;
161     NSMutableString *string = [NSMutableString stringWithString:str1];
162     NSMutableString *newString;
163     NSMutableString *newString1 = [NSMutableString stringWithString:@""];
164
165     for (i=0; i<string.length; i++) {
166
167         NSString *tempStr = [string substringWithRange:NSMakeRange(0, 1)];
168         int count=0;
169
170         for (int j=0; j<string.length; j++) {
171
172             NSString *tempStr1 = [string substringWithRange:NSMakeRange(0, 1)];
173
174         if ([tempStr1 isEqualToString:tempStr]) {
175
176             [string deleteCharactersInRange:NSMakeRange(0, 1)];
177             count++;
178         }
179         }
180         newString = [NSMutableString stringWithFormat:@"%d%@",count,tempStr];
181         [newString1 appendString:newString];
182
183     }
184     return newString1;
185
186 }
187
188 +(NSString *) theStringOrder:(NSString *) str1
189 {
190     NSMutableString *string = [NSMutableString stringWithString:str1];
191
192     for (int i=0; i<string.length-1; i++) {
193         for (int j=0; j<string.length-1; j++) {
194
195             NSString *tempStr1=[string substringWithRange:NSMakeRange(j, 1)];
196             NSString *tempStr2=[string substringWithRange:NSMakeRange(j+1, 1)];
197
198             NSRange range1 = [string rangeOfString:tempStr1];
199             NSRange range2 = [string rangeOfString:tempStr2];
200
201             if ([tempStr1 compare:tempStr2]==NSOrderedAscending) {
202
203
204                 [string replaceCharactersInRange:range2 withString:tempStr1];
205                 [string replaceCharactersInRange:range1 withString:tempStr2];
206             }
207             }
208         }
209     return string;
210 }
211
212
213 +(NSString *) replaceTheString:(NSString *) str1
214                     fromString:(NSString *) str2
215                       toString:(NSString *) str3
216 {
217     NSMutableString *string = [NSMutableString stringWithString:str2];
218
219     NSRange range = [string rangeOfString:str1];
220     [string replaceCharactersInRange:range withString:str3];
221     return string;
222 }
223
224 +(NSInteger) obtainTheLength:(NSString *) str1
225 {
226     return str1.length;
227 }
228
229
230
231
232 @end
233
234
235
236
237
238
239
240 #import <Foundation/Foundation.h>
241 #import "MyStringTools.h"
242
243 int main(int argc, const char * argv[]) {
244     @autoreleasepool {
245
246         NSString *mystring=[NSString stringWithFormat:@"abcdef"];
247
248         NSLog(@"%@",[MyStringTools reverseOrder:mystring]);
249
250         NSLog(@"%@",[MyStringTools deleteTheString:@"bc"
251                                           inString:mystring]);
252
253         NSLog(@"%ld",[MyStringTools findNumberOfString:@"bc"
254                                               inString:@"abcdfebcbbc"]);
255
256         NSLog(@"%@",[MyStringTools makeUpString:@"abcdef"
257                                       andString:@"gh"]);
258
259         NSLog(@"%@",[MyStringTools convertLetters:@"aBcDeF"
260                                           andCase:@"大写"]);
261
262         NSLog(@"%@",[MyStringTools compressString:@"hhfffkkkkkiinil"]);
263
264         NSLog(@"%@",[MyStringTools theStringOrder:@"sadcbfw"]);
265
266         NSLog(@"%@",[MyStringTools replaceTheString:@"sdf"
267                                          fromString:@"asdfghjkl"
268                                            toString:@"abc"]);
269
270         NSLog(@"%lu",[MyStringTools obtainTheLength:@"qwert"]);
271
272
273
274     }
275     return 0;
276 }
时间: 2024-08-04 19:24:28

OC Foundation框架—字符串操作方法及习题的相关文章

OC Foundation框架—字符串

一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableArray:可变数组 2) NSSet: NSMutableSet: 3) NSDictiorary NSMutableDictiorary 其它: NSDate NSObject 二.NSString和NSMutableString的使用与注意 (一)6种创建字符串的形式 (二)使用注意 (1)字符

OC Foundation & NSString 字符串

一 Foundation 简介 Foundation 框架是苹果公司提供给开发人员,提高效率的的工作库. Foundation中提供了了多类,定义在头文件中.例如NSString类: #import <Foundation/NSSortDescriptor.h> #import <Foundation/NSStream.h> #import <Foundation/NSString.h> #import <Foundation/NSTextCheckingResu

李洪强iOS之Foundation框架—字符串

Foundation框架—字符串 一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableArray:可变数组 2) NSSet: NSMutableSet: 3) NSDictiorary NSMutableDictiorary 其它: NSDate NSObject 二.NSString和NSMutableString的使用与注意 (一)6种创建字符串

Foundation框架—字符串

一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableArray:可变数组 2) NSSet: NSMutableSet: 3) NSDictiorary NSMutableDictiorary 其它: NSDate NSObject 二.NSString和NSMutableString的使用与注意 (一)6种创建字符串的形式 (二)使用注意 (1)字符

我是黑马-----Foundation框架字符串

1)了解Foundation框架: Foundation框架它提供了字符串.集合.I/O等很多和其他语言一样的标准库一样的功能. Foundation本身就是一个巨大的库,这里无法罗列出Foundation提供的每个雷和方法. 2)Foundation框架使用字符串: NSString 的快捷语法: 1 NSString *someString = @"this is a string"; 本质上,编译器一旦遇到@并紧跟着包含在“”之中的字符串就会创建一个静态的包含所提供字符串的NSS

OC Foundation框架—结构体

一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了. 即#import<foundation/foundation.h> 补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的. 二.常用的结构体介绍及简单使用 常用的结构体: (一)NSRang的基本使用 创建变量 (二)NSPo

OC Foundation框架—集合

Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组. C语言数组有一个缺点即数组中只能存放同种数据类型的元素. OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等. (2)NSArray的创建 (3)NSArray的访问 (4)NSArray的遍历 数组的遍历有以下几种方式: 首先创建一个数组 第

[OC Foundation框架 - 13] NSValue

NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue 包装结构体成OC对象 1.自带结构体 1 void value() 2 { 3 CGPoint point = CGPointMake(10, 10); 4 NSValue *obj = [NSValue valueWithPoint:point]; 5 NSLog(@"%@", obj); 6 7 CGPoint p1 = [obj pointValue]; 8 BOOL result = CGPointE

[OC Foundation框架 - 20] 统计代码行数

注意: 1.变量名和函数名不要混淆调用 2.不要对文件夹进行文件的操作,没有权限 3.递归调用注意初始化变量 1 // 2 // main.m 3 // CodeLineCount 4 // 5 // Created by hellovoidworld on 14-11-18. 6 // Copyright (c) 2014年 com.hellovoidworld. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>