objective-c中的NSString操作

//1、創建常量字符串。
    NSString *astring = @"This is a String!";

 

//2、創建空字符串,給予賦值。

    NSString *astring = [[NSString alloc] init];
    astring = @"This is a String!";
    NSLog(@"astring:%@",astring);
  [astring release];

 

//3、在以上方法中,提升速度:initWithString方法

    NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
    NSLog(@"astring:%@",astring);
    [astring release];

 

 //4、用標準c創建字符串:initWithCString方法

    char *Cstring = "This is a String!";
    NSString *astring = [[NSString alloc] initWithCString:Cstring];
    NSLog(@"astring:%@",astring);
    [astring release];

 

//5、創建格式化字符串:佔位符(由一個%加一個字符組成)

    1):這類方法稱爲簡便(convenience)方法或工廠方法,並且返回自動釋放的對象,使用了自動釋放池

    int i = 1;
    int j = 2;
    NSString *astring = [NSString stringWithFormat:@"%d.This is %i string!",i,j];
    NSLog(@"astring:%@",astring);
   

    2):這類方法雖然代碼複雜一些,但性能比簡便方法好

    int i = 1;
    int j = 2;
    NSString *astring = [[NSString alloc] initWithFormat::@"%d.This is %i string!",i,j];

    NSLog(@"astring:%@",astring);

    [astring release];

//6、創建臨時字符串

    NSString *astring;
    astring = [NSString stringWithCString:"This is a temporary string"];
    NSLog(@"astring:%@",astring);


    NSString *path = @"astring.text";
    NSString *astring = [[NSString alloc] initWithContentsOfFile:path];
    NSLog(@"astring:%@",astring);
    [astring release];


    NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
    NSLog(@"astring:%@",astring);
    NSString *path = @"astring.text";    
    [astring writeToFile: path atomically: YES];
    [astring release];

//用C比較:strcmp函數

    char string1[] = "string!";
    char string2[] = "string!";
    if(strcmp(string1, string2) = = 0)
    {
        NSLog(@"1");
    }

 

 

//isEqualToString方法    
    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 isEqualToString:astring02];
    NSLog(@"result:%d",result);

 

 //compare方法(comparer返回的三種值)    
    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"This is a String!";    
    BOOL result = [astring01 compare:astring02] = = NSOrderedSame;    
    NSLog(@"result:%d",result);    


//NSOrderedSame 判斷兩者內容是否相同

    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"this is a String!";
    BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;    

    NSLog(@"result:%d",result);


//NSOrderedAscending 判斷兩對象值的大小(按字母順序進行比較,astring02大於astring01爲真)

    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 compare:astring02] = = NSOrderedDescending;    
    NSLog(@"result:%d",result);     


    //NSOrderedDescending 判斷兩對象值的大小(按字母順序進行比較,astring02小於astring01爲真)

//不考慮大 小寫比較字符串1
    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;    
    NSLog(@"result:%d",result);     


    //NSOrderedDescending判斷兩對象值的大小(按字母順序進行比較,astring02小於astring01爲真)

//如何判斷字符串爲空

NSString *urlString = [urlInput stringValue];

 
if (!urlString) { 
 
 
NSLog( @”NO INPUT.” );

 
} else { 
 
if ([urlString length] == 0 ) {

 
NSLog( @”NO INPUT.” );

 
} else {

 
}

 

 

 

Convert NSString to int

1 NSString *aNumberString = @"123";
2 int i = [aNumberString intValue];

 

Convert int to NSString

1 int aNumber = 123;
2 NSString *aString = [NSString stringWithFormat:@"%d", aNumber];



NSString方法
+(id) stringWithContentsOfFile:path encoding:enc error:err
創建一個新字符串並將其設置爲path指定的文件的內容,使用字符編碼enc,如果非零,則返回err中錯誤
+(id) stringWithContentsOfURL:url encoding:enc error:err
創建一個新的字符串,並將其設置爲url的內容,使用字符編碼enc,如果非零,則返回err中的錯誤
+(id) string
創建一個新的空字符串
+(id) stringWithString:nsstring
創建一個新的字符串,並將其設置爲nsstring
-(id)initWithString:nsstring
將分配的字符串設置爲nsstring
-(id) initWithContentsOfFile:path encoding:enc error:err
將字符串設置爲path制定的文件的內容
-(id) initWithContentsOfURL:url encoding:enc error:err
將字符串設置爲url(NSURL *)url的內容,使用字符編碼enc,如果非零,則返回err中的錯誤
-(id) (UNSIgned int)length
返回字符串中的字符數目
-(unichar)characterAtIndex:i
返回索引i的Unicode字符
-(NSString *)substringFromIndex:i
返回從i開始知道結尾的子字符串
-(NSString *)substringWithRange:range
根據指定範圍返回子字符串
-(NSString *)substringToIndex:i
返回從該字符串開始到索i的子字符串
-(NSComparator *)caseInsensitiveCompare:nsstring
比較兩個字符串,忽略大小寫
-(NSComparator *)compare:nsstring
比較兩個字符串
-(BOOL)hasPrefix:nsstring
測試字符串是否以nsstring開始
-(BOOL)hasSuffix:nsstring
測試字符串是否以nsstrng結尾
-(BOOL)isEqualToString:nsstring
測試兩個字符串是否相等
-(NSString *) capitalizedString
返回每個單詞首字母大寫的字符串(每個單詞的其餘字母轉換爲小寫)
-(NSString *)lowercaseString
返回轉換爲小寫的字符串
-(NSString *)uppercaseString
返回轉換爲大寫的字符串
-(const char*)UTF8String
返回轉換爲UIF-8字符串的字符串
-(double)doubleValue
返回轉換爲double的字符串
-(float)floatValue
返回轉換爲浮點值的字符串
-(NSInteger)integerValue
返回轉換爲NSInteger整數的字符串
-(int)intValue
返回轉換爲整數的字符串


NSMutableString方法
+(id) stringWithCapacity:size
創建一個字符串,初始包含size的字符
-(id) initWithCapacity:size
使用初始容量爲size的字符串來初始化字符串
-(void) setString:nsstring
將字符串設置爲nsstring
-(void) appendString:nsstring
在接收者的末尾附加nsstring
-(void) deleteCharactersInRange:range
刪除指定range中的字符
-(void) insertString:nsstring atIndex:i
以索引i爲起始位置插入nsstring
-(void) replaceCharactersInRange:range withString:nsstring
使用nsstring替換range指定的字符
-(void) replaceOccurrencesOf
String:nsstring withString:
nsstring2 options:opts range:range

根據選項opts。使用指定range中 的nsstring2替換所有的nsstring。選項可以包括NSBackwardsSearch(從範圍的結尾開始搜 索)NSAnchoredSearch(nsstring必須匹配範圍的開始),NSLiteralSearch(執行逐字節比較以及 NSCaceInsensitiveSearch的按位或組合)




NSMutableString  

[aString substringToIndex:([aString length]-1)];//字符串刪除最後一個字符

//字符串刪除最後一個字符

 NSRange range = {0,1};

 [aStr deleteCharactersInRange:range];


NSString是不可變的,意思是他聲明的對象我們不可以改變,如果要改變,可以使用它的子類:NSMutableString

 

你可以使用類方法:stringWithCapacity來創建一個新的NSMutableString,聲明如下:

 

*  (id) stringWithCapacity: (unsigned) capacity:

 

可按如下方法聲明一個新的可變字符串:

NSString *str1;

Str1 = [NSMutableString stringWithCapacity:42];

 

可以使用appendString或appendFormat來對可變字符串操作:

  - (void)appendString: (Nsstring *) aString;

  -  (void) appendFormat: (NSString *) Format;

 

appendString 接受參數aString,然後將其複製到接受對象的末尾。

appendFormat類似,他將格式化的字符串附加在接受對象的末尾,而不是創建新的對象。

 

EXP:

NSMutableString *string;

string = [NSMutableString stringWithcapacity:50];

[string appendString: @”hello,there”];

[string appendFormat: @”human %d!”, 39];

 這段代碼的string最後被賦值爲:hello,there human 39!

 

你還可以使用deleteCharactersInRange:方法來刪除字符串中的字符:

- (void) deleteCharactersInRange: (NSRange) range;

 

通常將deleteCharactersInRange: 和rangeOfString:連在一起使用,NSMutableString可以使用NSString的全部功能,包括rangeOfString:、字符串比較和其他任何功能。

 

例如,你列了一個所有朋友列表,你突然又不喜歡Jack了,想把他從朋友列表裏刪除:

 

//朋友列表初始化

NSMutableString *friends;

friends = [NSMutableString stringWithcapacity: 50];

[friends appendString: @”level fang jack even”];

 

//找到jack並且刪除

NSRange jackRange;

jackRange = [friends rangeOfString: @”jack”];

jackRange.length++; //eat the space that follows

[friends deleteCharactersInRange: jackRange];



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