數(shù)字字符串和集合課件_第1頁(yè)
數(shù)字字符串和集合課件_第2頁(yè)
數(shù)字字符串和集合課件_第3頁(yè)
數(shù)字字符串和集合課件_第4頁(yè)
數(shù)字字符串和集合課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)字字符串和集合課件數(shù)字字符串和集合課件數(shù)字字符串和集合課件數(shù)字、字符串和集合數(shù)字對(duì)象int、float等基本數(shù)據(jù)類(lèi)型,不是對(duì)象,不能向它們發(fā)送消息。而Foundation的對(duì)象NSArray數(shù)組中不能將基本數(shù)據(jù)類(lèi)型存儲(chǔ)進(jìn)來(lái)。NSNumber類(lèi)可以創(chuàng)建數(shù)據(jù)對(duì)象。NSNumber的創(chuàng)建方法和檢索方法,如下:字符串對(duì)象NSString類(lèi)用于處理字符串對(duì)象,由unichar字符組成。NSConstantString常量字符串對(duì)象,是NSString類(lèi)的子類(lèi)。如:NSString*str=”P(pán)rogrammingisfun”NSLog(”%”,str);可變字符串與不可變字符串NSString類(lèi)處理不可變對(duì)象NSMutableString類(lèi)處理可變對(duì)象例1Nstring字符串:NSString*str1="ThisastringA";NSString*str2="ThisastringB";NSString*res=[NSStringstringWithString:str1];str2=[str1stringByAppendingString:str2];if([str1isEqualToString:res]==YES)NSLog("str1==res");NSComparisonResultresult=[str1compare:str2];if(result==NSOrderedAscending){NSLog("str1<str2");}elseif(result==NSOrderedDescending){NSLog("str1>str2");}res=[str1uppercaseString];NSLog("%s",[resUTF8String]);

res=[str1substringToIndex:4];NSLog("First4charsofstr1%",res);res=[str1substringFromIndex:4];NSLog("charsfromindexof4ofstr1:%",res);res=[[str1substringFromIndex:8]substringToIndex:6];NSLog("charsfromindex8through13:%",res);res=[str1substringWithRange:NSMakeRange(8,6)];NSLog("charsfromindex8through13:%",res);NSRangesubRange=[str1rangeOfString:"StringA"];NSLog("stringisatindex%lu,lengthis%lu",subRange.location,subRange.length);subRange=[str1rangeOfString:"StringB"];if(subRange.location==NSNotFound){NSLog("stringnotfound");

例2:NSMutableStringNSString*str1="ThisisstringA";NSString*search,*replace;NSMutableString*mstr;NSRangesubstrRange;mstr=[NSMutableStringstringWithString:str1];[mstrinsertString:"mutable"atIndex:7];[mstrinsertString:"andstringB"atIndex:[mstrlength]];[mstrappendString:"andstringC"];[mstrdeleteCharactersInRange:NSMakeRange(16,13)];

substrRange=[mstrrangeOfString:"stringBand"];if(substrRange.location!=NSNotFound){[mstrdeleteCharactersInRange:substrRange];}[mstrsetString:"ThisisstringA"];[mstrreplaceCharactersInRange:NSMakeRange(8,8)withString:"amutablestring"];search="Thisis";replace="Anexampleof”;substrRange=[mstrrangeOfString:search];

if(substrRange.location!=NSNotFound){[mstrreplaceCharactersInRange:substrRangewithString:replace];}search="a";replace="X”;substrRange=[mstrrangeOfString:search];while(substrRange.location!=NSNotFound){[mstrreplaceCharactersInRange:substrRangewithString:replace];substrRange=[mstrrangeOfString:search];}數(shù)組對(duì)象Foundation數(shù)組是有序的對(duì)象集合一個(gè)數(shù)組中的元素都是一個(gè)特定類(lèi)型,但不是必需的存在可變數(shù)組NSMutableArray和不可變數(shù)組NSArray要在程序中使用數(shù)組對(duì)象,應(yīng)包括相應(yīng)頭文件#import<Foundation/NSArray.h>NSArray*monthNames=[NSArrayarrayWithObjects:"January","Febrary","March","April”,nil]; NSLog("%",monthNames);

inti,p,prevPrime;BOOLisPrime;NSMutableArray*primes=[NSMutableArrayarrayWithCapacity:20];[primesaddObject:[NSNumbernumberWithInt:2]];[primesaddObject:[NSNumbernumberWithInt:3]];for(p=5;p<=100;p+=2){isPrime=YES;i=1;

do{prevPrime=(int)[[primesobjectAtIndex:i]integerValue];if(p%prevPrime==0){isPrime=NO;}++I;}while(isPrime==YES&&p/prevPrime>=prevPrime);if(isPrime){[primesaddObject:[NSNumbernumberWithInt:p]];}}

示例:制作地址簿第一步:生成一個(gè)地址卡片AddressCard類(lèi),僅包含姓名和email字段,設(shè)置卡片的姓名和email字段,檢索這些字段的內(nèi)容,并打印卡片。interfaceAddressCard:NSObject{NSString*name;NSString*email;}-(void)setName:(NSString*)theName;-(void)setEmail:(NSString*)theEmail;-(NSString*)name;-(NSString*)email;-(void)print;end

-(void)setName:(NSString*)theName{//name=theName;//name=[[NSStringalloc]initWithString:theName];

//如果某人更改了卡片上的姓名,在使用新姓名代替舊姓名前,釋放舊姓名所占用的內(nèi)存[namerelease];name=[[NSStringalloc]initWithString:theName];}

-(void)print{NSLog("=========================");NSLog("|%-31s|",[nameUTF8String]);NSLog("|%-31s|",[emailUTF8String]);}//需要重載dealloc方法,在釋放AddressCard對(duì)象的內(nèi)存時(shí),其成員的內(nèi)存一并釋放-(void)dealloc{[namerelease];[emailrelease];[superdealloc];}

修改AddressCard類(lèi),如下:interfaceAddressCard:NSObject{NSString*name;NSString*email;}property(nonatomic,copy)NSString*name,*email;-(void)setName:(NSString*)thenameandEmail:(NSString*)theEmail;end

implementationAddressCardsynthesizename,email;-(void)setName:(NSString*)thenameandEmail:(NSString*)theEmail{=thename;self.email=theEmail;}end

第二步,定義地址簿AddressBook類(lèi),存儲(chǔ)地址簿的名字和一個(gè)AddressCard集合??梢詣?chuàng)建新地址簿,向其添加地址卡片,計(jì)算地址簿的記錄數(shù),列出地址簿的內(nèi)容。后續(xù)功能:搜索地址簿,刪除記錄,編輯現(xiàn)有記錄,將記錄排序等

#import"AddressCard.h";interfaceAddressBook:NSObject{NSString*bookName;NSMutableArray*book;}-(id)initWithName:(NSString*)name;-(void)addCard:(AddressCard*)theCard;-(int)entries;-(void)list;-(void)dealloc;end

implementationAddressBook-(id)initWithName:(NSString*)name{self=[superinit];if(self){bookName=[[NSStringalloc]initWithString:name];book=[[NSMutableArrayalloc]init];}returnself;}

-(void)addCard:(AddressCard*)theCard{[bookaddObject:theCard];}-(int)entries{return(int)[bookcount];}-(void)list{NSLog("=======Contentsof:%=======",bookName);for(AddressCard*cardinbook){NSLog("%-20s%32s",[UTF8String],[card.emailUTF8String]);}}

-(void)dealloc{[bookNamerelease];[bookrelease];[superdealloc];}end

在地址簿中查找某人:-(AddressCard*)lookup:(NSString*)theName{for(AddressCard*nextCardinbook){if([[nextCardname]caseInsensitiveCompare:theName]==NSOrderedSame){returnnextCard;}}returnnil;}

在地址簿中刪除某人-(void)removeCard:(AddressCard*)theCard{[bookremoveObjectIdenticalTo:theCard];}詞典對(duì)象Dictionary是由鍵-對(duì)象組成的數(shù)據(jù)集合詞典中的鍵必須是單值的,通常是字符串和鍵關(guān)聯(lián)的值

可以是任何對(duì)象類(lèi)型,不能為nil詞典可以是固定的,也可以是可變的NSDictionary*glossary1=[NSDictionarydictionaryWithObjectsAndKeys:"Aclassdefinedsootherclassescaninheritfromit","abstractclass","Toimplementallthemethoddefinedinaprotocol","adopt","storinganobjectforlateruse","archiving",nil];

NSMutableDictionary*glossary2=[NSMutableDictionarydictionary];[glossary2setObject:"Aclassdefinedsootherclassescaninheritfromit"forKey:"abstractclass"];[glossary2setObject:"Toimplementallthemethoddefinedinaprotocol"forKey:"adopt"];[glossary2setObject:"storinganobjectforlateruse"forKey:"archiving"];for(NSString*keyinglossary2){NSLog("%,%",key,[glossary2objectForKey:key]);}練習(xí)1、修改AddressBook中的lookup:方法,使之能夠找出name的部分匹配。消息表達(dá)式:[myBookl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論