第四讲.NSString(字符串),NSArray(数组),NSNumber(代码)

  1 #import <Foundation/Foundation.h>
  3 int main(int argc, const char * argv[]) {
  4     @autoreleasepool {
  5 
  6        
  7     /*
  8    -----------------------------------------------------------
  9                        字符串的使用
 10    ------------------------------------------------------------
 11     */
 12         //不可变字符串的使用
 13         
 14         //NSString的定义(6种方法)
 15         
 16     NSString *str = @"hello world";
 17         
 18     NSString *str2 = [[NSString alloc] initWithString:str];
 19     NSLog(@"%@",str2);
 20         
 21         //用c得字符串创建oc的字符串对象
 22     NSString *str3 = [[NSString alloc] initWithUTF8String:"大家好!!!"];
 23         NSLog(@"%@",str3);
 24         
 25         //使用格式符拼接一个字符串
 26     NSString * str4 = [[NSString alloc] initWithFormat:@"你好 %d %c",5,'b'];
 27       NSLog(@"%@",str4);
 28         
 29         //用c得到oc字符串的另一种方法
 30     NSString *str5 = [NSString stringWithUTF8String:"你还"];
 31      NSLog(@"%@",str5);
 32         
 33         //格式化创建字符串的两种方式
 34     NSString * str6 = [NSString stringWithFormat:@"%d %@ %c",1,@"哈喽",'r'];
 35       NSLog(@"%@",str6);
 36         
 37         //利用一个字符串创建另一个字符串的第2种方法
 38     NSString * str7 = [NSString stringWithString:str];
 39       NSLog(@"%@",str7);
 40         
 41     //比较两个字符串的大小以及是否相等
 42         
 43     NSString *s3 = @"456";
 44     NSString *s4 = @"456";
 45     //方法一
 46     //判断两个字符串是否相等 返回为一个BOOL类型的值
 47     BOOL zhi = [s3 isEqualToString:s4];
 48         NSLog(@"%hhd",zhi);
 49     //方法二
 50     NSComparisonResult p = [s3 compare:s4];
 51     if(p ==  NSOrderedAscending){
 52         NSLog(@"s3<s4");
 53     } else if(p == NSOrderedSame) {
 54         NSLog(@"s3 == s4");
 55     }else if (p ==NSOrderedDescending){
 56         NSLog(@"s3>s4");
 57     }
 58 
 59     //查找字符在字符串中的位置(返回值为位置和长度)
 60     NSString *s5 = @"I am so bad man";
 61     NSString *s6 = @"so";
 62         
 63     NSRange range = [s5 rangeOfString:s6];
 64     NSLog(@"location:%lu length:%lu",range.location,range.length);
 65         
 66     //获取子字符串,从字符串中提取一部分创建新的字符串(4种方法)
 67     
 68         NSString *s7  = @"0123456789";
 69         
 70     //方法一.  从str中提取从头至第6个字符串(不包括第6个),生成新字符串.返回字符串地址.开区间
 71     NSString *s8 = [s7 substringToIndex:6];
 72         NSLog(@"%@",s8);
 73         
 74     //方法二.  从str中提取从第6个字符串(包括第6个),到最后一个字符串,生成新字符串,返回字符串地址
 75     NSString * s9 = [s7 substringFromIndex:6];
 76         NSLog(@"%@",s9);
 77         
 78     //方法三
 79     NSRange rang = {3,4};
 80     NSString * s10 = [s7 substringWithRange:rang];
 81         NSLog(@"%@",s10);
 82         
 83     //方法四
 84     NSString *s11 = [s7 substringWithRange:NSMakeRange(3, 4)];
 85         NSLog(@"%@",s11);
 86         
 87         
 88         
 89         //可变字符串的增删改查  NSMutableString
 90         //1.增(append inset)
 91         
 92     NSMutableString *sc = [[NSMutableString alloc]init];
 93         
 94         //设置字符串或添加方法
 95         [sc setString:@"hello"];
 96         [sc setString:@"world"];
 97         
 98         //添加字符串
 99         [sc appendString:@"123"];
100         [sc appendFormat:@"%c",'d'];
101         
102         //插入字符串
103         [sc insertString:@"xxxx" atIndex:4];
104         NSLog(@"%@ ",sc);
105         
106         //删 (delete)
107         //方法一
108     NSRange ran = NSMakeRange(2, 3);
109         [sc deleteCharactersInRange:ran];
110         //方法二
111     [sc deleteCharactersInRange:NSMakeRange(3, 5)];
112         NSLog(@"%@",sc);
113         
114         //替换字符串(replace)(一)*仅适用不可变数组
115     [sc replaceCharactersInRange:NSMakeRange(3, 2) withString:@"iii"];
116         NSLog(@"%@",sc);
117         
118         //替换字符串(二)*可变不可变都能用
119     NSString *sb = [sc stringByReplacingOccurrencesOfString:@"34"withString:@"00"];
120         NSLog(@"%@",sb);
121  
122         
123         /*
124          
125     ----------------------------------------------
126          
127             NSArray数组的定义和使用
128          
129     -----------------------------------------------
130          
131          */
132       //不可变数组
133     //定义数组的方法
134     NSArray *c =[NSArray arrayWithObjects:@"12",@"34",@"56",nil];
135         NSLog(@"%@",c);
136         
137     //查找数组对应位置元素
138     NSArray *c1 = [c objectAtIndex:2];
139         NSLog(@"%@",c1);
140         
141     NSInteger i = [c indexOfObject:@"56"];
142         NSLog(@"%ld",i);
143         
144     //输出数组元素个数
145    NSLog(@"%lu",(unsigned long)[c count]);
146         
147     /*
148      
149     //可变数组定义及使用
150      
151     */
152     NSMutableArray *d = [[NSMutableArray alloc]initWithObjects:@"one",@"two",@"three", nil];
153         NSLog(@"%@",d);
154         
155         //增加数组元素
156         [d addObject:@"1"];
157         [d addObject:@"2"];
158         NSLog(@"%@",d);
159         
160         //删除数组元素
161         
162         //1.删除指定对象
163         [d removeObject:@"one"];
164         NSLog(@"%@",d);
165         //2.删除对应位置元素
166         [d removeObjectAtIndex:1];
167         NSLog(@"%@",d);
168         //3.删除最后一个
169         [d removeLastObject];
170         NSLog(@"%@",d);
171         //4.删除所有
172         [d removeAllObjects];
173         NSLog(@"%@",d);
174         
175         
176     NSMutableArray *d1 = [NSMutableArray arrayWithObjects:@"12",@"345",@"659", nil];
177         
178         //交换元素位置
179         [d1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
180         NSLog(@"%@",d1);
181         
182         //替换数组元素
183     [d1 replaceObjectAtIndex:2 withObject:@"__"];
184         NSLog(@"%@",d1);
185         
186 
187         //快速枚举法遍历数组
188         for(id obj in d1)
189         {
190             NSLog(@"%@",obj);
191             
192         }
193         
194         //使用i值遍历数组
195     NSInteger lengt = [d1 count];
196     for (int i=0; i<lengt; i++) {
197             NSLog(@"%@",[d1 objectAtIndex:i]);
198         }
199         
200         //枚举器法遍历数组
201     NSEnumerator * enumerator = [d1 objectEnumerator];
202     id obj;
203     while (obj = [enumerator nextObject]) {
204             NSLog(@"%@",obj);
205         }
206         
207         //逆序枚举遍历数组
208     NSEnumerator *n = [d1 reverseObjectEnumerator];
209     id ob;
210     while (n = [enumerator nextObject]) {
211             NSLog(@"%@",ob);
212         }
213     NSLog(@"%@",d1);
214         
215         //注意:使用枚举法时对数组不能修改,用逆序枚举法也可以改
216 
217       
218         
219     
220         
221         
222         
223     //给定一个字符串,判断字符串中是否以"png"结尾,如果是就替换成"jpg",如果不是,就拼接".jpg"
224      //方法一
225     NSString *st = @"00000png";
226     NSInteger leng = [st length];
227         NSLog(@"%lu",leng);
228         
229     NSString*st1 = [st substringFromIndex:leng-3];
230         NSLog(@"%@",st1);
231         
232     if ([st1  isEqualToString: @"png"]){
233     NSString *st2 =
234     [ st stringByReplacingOccurrencesOfString:st1 withString:@"jpg"];
235             NSLog(@"%@",st2);
236         }  else {
237     NSString *st3 =[ st stringByAppendingString:@",jpg"];
238             NSLog(@"%@",st3);
239         }
240         
241         
242     //方法二
243     NSMutableString *c4 = [[NSMutableString alloc]init];
244     [c4 setString:@"000000000png"];
245         
246     NSInteger length = [c4  length];
247         NSLog(@"%ld",(long)length);
248 
249     if ([[c4 substringFromIndex:length-3] isEqualToString:@"png"])
250     {
251         [c4 replaceCharactersInRange:NSMakeRange(length-3, 3) withString:@"jpg"];
252             NSLog(@"%@",c4);
253             
254     } else {
255         [c4 appendString:@".jpg"];
256             NSLog(@"%@",c4);
257         }
258         
259         
260 //数组与字符串的联合使用  倒序输出”I am a so bad man”
261     NSString *str1 = @"I am a so bad man";
262     NSArray *arry = [str1 componentsSeparatedByString:@" "];
263     NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
264         
265     NSEnumerator *enu = [arry reverseObjectEnumerator];
266         
267     id j;
268     while (j = [enu nextObject]) {
269         [mutableArray addObject:j];
270     }
271     NSString *newStr = [mutableArray componentsJoinedByString:@"@"];
272     NSLog(@"%@",newStr);
273 
274         
275       /*
276        
277    --------------------------------------
278        
279        NSNumber的使用(用于转化进本数据类型)
280        
281    ---------------------------------------
282        
283        */
284         
285     //把基本类型转化为NSNumber
286         NSNumber *intNumber = [[NSNumber alloc] initWithInt:5];
287         NSNumber *floatNumber = [[NSNumber alloc]initWithFloat:5.0f];
288         NSNumber *doubleNumber = [[NSNumber alloc]initWithDouble:4.67];
289         NSNumber *charNumber = [[NSNumber alloc]initWithChar:'A'];
290         NSLog(@"%@   %@   %@    %@",intNumber,floatNumber,doubleNumber,charNumber);
291         
292         
293         //通过调用还原基本数据类型
294         NSLog(@"%d",[intNumber intValue]);
295         NSLog(@"%f",[floatNumber floatValue]);
296         NSLog(@"%f",[doubleNumber doubleValue]);
297         NSLog(@"%c",[charNumber charValue]);
298         
299         
300         //比较两个元素是否相等(返回值为1或0)
301     BOOL ret = [intNumber isEqualToNumber:floatNumber];
302         NSLog(@"%d",ret);
303         
304         //另一种比较的方法
305     if([intNumber compare:floatNumber] ==NSOrderedAscending){
306             NSLog(@"<");
307     } else if ([intNumber compare:floatNumber] == NSOrderedSame){
308             NSLog(@"=");
309     } else if ([intNumber compare:floatNumber]==NSOrderedDescending){
310             NSLog(@">");
311     }
原文地址:https://www.cnblogs.com/erdeng/p/4768749.html