初學ios時候String的各類用法

1. 學習方法 3 api

2. NSString 數組

2.1. 建立常量字符串。 4 app

2.2. 建立空字符串,給予賦值。 4 函數

2.3. 使用變量初始化 4 學習

2.4. 判斷是否包含某字符串 4 this

2.4.1. 檢查字符串是否以另外一個字符串開頭- (BOOL) hasPrefix: (NSString *) aString; 4 atom

2.4.2. 是否包含其它字符 5 spa

2.5. 從文件讀取字符串:initWithContentsOfFile方法 5 code

2.6. 寫字符串到文件:writeToFile方法 5 component

2.7. 比較兩個字符串 5

2.7.1. 用C比較:strcmp函數 5

2.7.2. isEqualToString方法 6

2.7.3. compare方法(comparer返回的三種值) 6

2.7.4. NSOrderedSame判斷二者內容是否相同 6

2.7.5. 不考慮大小寫比較字符串1 7

2.8. 改變字符串的大小寫 7

2.9. 在串中搜索子串 7

2.10. 替換字符串 8

2.11. 分割字符串成數組 8

2.12. 字符串數組拼接成字符串 8

2.13. 抽取子串 9

2.13.1. -substringToIndex: 從字符串的開頭一直截取到指定的位置,但不包括該位置的字符 9

2.13.2. -substringFromIndex: 以指定位置開始(包括指定位置的字符),幷包括以後的所有字符 9

2.13.3. -substringWithRange: //按照所給出的位置,長度,任意地從字符串中截取子串 9

2.14. 擴展路徑 9

2.15. 文件擴展名 10

2.16. 練習題:將文本「成績單.text」內容加載到內存中並按規定的格式輸出出來 10

3. NSMutableString 10

3.1. 給字符串分配容量 10

3.2. 在已有字符串後面添加字符 10

3.3. 在已有字符串中按照所給出範圍和長度刪除字符 11

3.4. 在已有字符串後面在所指定的位置中插入給出的字符串 11

3.5. 將已有的空符串換成其它的字符串 11

3.6. 按照所給出的範圍,和字符串替換的原有的字符 12

4. NSArray 12

4.1. 建立數組 12

4.2. 獲取指定索引處的對象; 12

4.3. 從一個數組拷貝數據到另外一數組(可變數級) 13

4.4. 快速便利數組 14

4.5. Copy and sort 14

5. NSMutableArray 15

5.1. 給數組分配容量 15

5.2. 在數組末尾添加對象 15

5.3. 刪除數組中指定索引處對象 16

5.4. 數組枚舉 16

5.4.1. 從前向後 16

5.4.2. 從後向前 16

5.5. 快速枚舉 17

6. NSDictionary 17

6.1. 建立字典 17

7. NSMutableDictionary 18

7.1. 建立 18

7.2. 添加字典 18

7.3. 刪除指定的字典 18

8. NSValue(對任何對象進行包裝) 18

8.1. 將NSRect放入NSArray中 18

8.2. 從Array中提取 19

8.3. 從目錄搜索擴展名爲jpg的文件 19

9. NSNumber 20


NSString

建立字符串。

    NSString *astring = @"This is a String!";

 

建立空字符串,給予賦值。

 

    NSString *astring = [[NSString alloc] init];

    astring = @"This is a String!";

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

  [astring release];

 

使用變量初始化

 NSString *name = @"Ivan!";

    NSString *astring = [[NSString stringWithFormat:@」My name is %@!」,name]];

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

  

 

判斷是否包含某字符串

檢查字符串是否以另外一個字符串開頭- (BOOL) hasPrefix: (NSString *) aString;

    NSString *String1 = @"NSStringInformation.txt";

    [String1 hasPrefix:@"NSString"] == 1 ?  NSLog(@"YES") : NSLog(@"NO");

    [String1 hasSuffix:@".txt"] == 1 ?  NSLog(@"YES") : NSLog(@"NO");

 

是否包含其它字符

NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];

Boolean contains = [astring rangeOfString:@」This」].length>0;

  

從文件讀取字符串:initWithContentsOfFile方法   

 

    NSString *path = @"astring.text";

    NSString *astring = [[NSString alloc] initWithContentsOfFile:path];

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

    [astring release];

 

寫字符串到文件:writeToFile方法 

 

    NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];

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

    NSString *path = @"astring.text";    

    [astring writeToFile: path atomically: YES];

    [astring release];    

 

比較兩個字符串      

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);

   

不考慮大小寫比較字符串1

    NSString *astring01 = @"this is a String!";

    NSString *astring02 = @"This is a String!";

    BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;    

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

 

 

改變字符串的大小寫 

 

    NSString *string1 = @"A String"; 

    NSString *string2 = @"String"; 

    NSLog(@"string1:%@",[string1 uppercaseString]);//大寫

    NSLog(@"string2:%@",[string2 lowercaseString]);//小寫

    NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小

 

在串中搜索子串     

 

    NSString *string1 = @"This is a string";

    NSString *string2 = @"string";

    NSRange range = [string1 rangeOfString:string2];

    int location = range.location;

    int leight = range.length;

    NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];

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

    [astring release];

 

 替換字符串

        NSString *astring01 = @"hello 中國";

        NSString * new = [astring01 stringByReplacingOccurrencesOfString:@」中國」 withString:@"北京"];  

        NSLog(new);  

分割字符串成數組

NSString *s = @"a b d e f";

NSArray *arr = [s componentsSeparatedByString:@" "];

NSLog(@"count = %d",[arr count]);

字符串數組拼接成字符串

   NSArray *pathArray = [NSArray arrayWithObjects:@"here",  

                              @"be", @"dragons", nil];  

        NSLog(@"%@",[pathArray componentsJoinedByString:@""]);  

抽取子串     

-substringToIndex: 從字符串的開頭一直截取到指定的位置,但不包括該位置的字符

    NSString *string1 = @"This is a string";

    NSString *string2 = [string1 substringToIndex:3];

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

-substringFromIndex: 以指定位置開始(包括指定位置的字符),幷包括以後的所有字符

    NSString *string1 = @"This is a string";

    NSString *string2 = [string1 substringFromIndex:3];

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

 -substringWithRange: //按照所給出的位置,長度,任意地從字符串中截取子串

    NSString *string1 = @"This is a string";

    NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];

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


NSMutableString

給字符串分配容量

    //stringWithCapacity:

    NSMutableString *String;

    String = [NSMutableString stringWithCapacity:40];

 

 

在已有字符串後面添加字符

    //appendString: and appendFormat:

 

    NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

    //[String1 appendString:@", I will be adding some character"];

    [String1 appendFormat:[NSString stringWithFormat:@", I will be adding some character"]];

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

    */

 

 

在已有字符串中按照所給出範圍和長度刪除字符 

     //deleteCharactersInRange:

     NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

     [String1 deleteCharactersInRange:NSMakeRange(0, 5)];

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

在已有字符串後面在所指定的位置中插入給出的字符串

 

    //-insertString: atIndex:

    NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

    [String1 insertString:@"Hi! " atIndex:0];

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

 

將已有的換成其它的字符串

 

    //-setString:

    NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

    [String1 setString:@"Hello Word!"];

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

 

按照所給出的範圍,和字符串替換的原有的字符

 

    //-setString:

    NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

    [String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];

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

 

NSArray

 建立數組

    NSArray *array = [[NSArray alloc] initWithObjects:

    @"One",@"Two",@"Three",@"Four",nil];

 

    self.dataArray = array;

    [array release];

 

    //- (unsigned) Count;數組所包含對象個數;

    NSLog(@"self.dataArray cound:%d",[self.dataArray count]);

 

    獲取指定索引處的對象;

    NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);

 

 

從一個數組拷貝數據到另外一數組

 

    //arrayWithArray:

    //NSArray *array1 = [[NSArray alloc] init];

    NSMutableArray *MutableArray = [[NSMutableArray alloc] init];

    NSArray *array = [NSArray arrayWithObjects:

                      @"a",@"b",@"c",nil];

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

    MutableArray = [NSMutableArray arrayWithArray:array];

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

 

    array1 = [NSArray arrayWithArray:array];

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

 

 

    //Copy

 

    //id obj;

    NSMutableArray *newArray = [[NSMutableArray alloc] init];

    NSArray *oldArray = [NSArray arrayWithObjects:

                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];

 

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

    for(int i = 0; i < [oldArray count]; i++)

    {        

        obj = [[oldArray objectAtIndex:i] copy];

        [newArray addObject: obj];

    }

    //     

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

    [newArray release];

 

 

快速便利數組

 

    //NSMutableArray *newArray = [[NSMutableArray alloc] init];

    NSArray *oldArray = [NSArray arrayWithObjects:

                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    

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

 

    for(id obj in oldArray)

    {

        [newArray addObject: obj];

    }

    //     

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

    [newArray release];    

 

Copy and sort

 

    //NSMutableArray *newArray = [[NSMutableArray alloc] init];

    NSArray *oldArray = [NSArray arrayWithObjects:

                         @"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];    

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

    NSEnumerator *enumerator;

    enumerator = [oldArray objectEnumerator];

    id obj;

    while(obj = [enumerator nextObject])

    {

        [newArray addObject: obj];

    }

    [newArray sortUsingSelector:@selector(compare:)];

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

[newArray release];


NSMutableArray

給數組分配容量

    //NSArray *array;

    array = [NSMutableArray arrayWithCapacity:20];

 

 

在數組末尾添加對象

    //- (void) addObject: (id) anObject;

    //NSMutableArray *array = [NSMutableArray arrayWithObjects:

    @"One",@"Two",@"Three",nil];

    [array addObject:@"Four"];

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

 

刪除數組中指定索引處對象 

    //-(void) removeObjectAtIndex: (unsigned) index;    

    //NSMutableArray *array = [NSMutableArray arrayWithObjects:

    @"One",@"Two",@"Three",nil];

    [array removeObjectAtIndex:1];

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

 

 

 

數組枚舉 

從前向後

    //NSMutableArray *array = [NSMutableArray arrayWithObjects:

    @"One",@"Two",@"Three",nil];

    NSEnumerator *enumerator;

    enumerator = [array objectEnumerator];

 

    id thingie;

    while (thingie = [enumerator nextObject]) {

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

    }

 

 

從後向前

NSMutableArray *array = [NSMutableArray arrayWithObjects:

    @"One",@"Two",@"Three",nil];

    NSEnumerator *enumerator;

    enumerator = [array reverseObjectEnumerator];

 

    id object;

    while (object = [enumerator nextObject]) {

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

    }

 

 

快速枚舉

    //NSMutableArray *array = [NSMutableArray arrayWithObjects:

    @"One",@"Two",@"Three",nil];

    for(NSString *string in array)

    {

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

    }

 

 

NSDictionary

建立字典

    //- (id) initWithObjectsAndKeys;

 

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];

    NSString *string = [dictionary objectForKey:@"One"];

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

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

    [dictionary release];

 練習題:將文本「成績單.text」內容加載到內存中並按規定的格式輸出出來


NSMutableDictionary

建立

    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];

 

添加字典

    [dictionary setObject:@"One" forKey:@"1"];

    [dictionary setObject:@"Two" forKey:@"2"];

    [dictionary setObject:@"Three" forKey:@"3"];

    [dictionary setObject:@"Four" forKey:@"4"];

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

 

刪除指定的字典

    [dictionary removeObjectForKey:@"3"];

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

 

 

 NSValue(對任何對象進行包裝)

將NSRect放入NSArray中

    NSMutableArray *array = [[NSMutableArray alloc] init];

    NSValue *value;

    CGRect rect = CGRectMake(0, 0, 320, 480);    

    value = [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];

    [array addObject:value];

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

 

從Array中提取

    value = [array objectAtIndex:0];

    [value getValue:&rect];

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

 

 

定義結構體並添加到NSArray裏面

typedef struct {

float real;

float imaginary;

} ImaginaryNumber;

 

ImaginaryNumber miNumber;

miNumber.real = 1.1;

miNumber.imaginary = 1.41;

 

NSValue *miValue = [NSValue value:miNumber

withObjCType:@encode(ImaginaryNumber)]; // encode using the type name

 

ImaginaryNumber miNumber2;

[miValue getValue:&miNumber2];


宏定義#define講解

NSNumber

NSNumber

+ (NSNumber *)numberWithInt:(int)value;

+ (NSNumber *)numberWithDouble:(double)value;

- (int)intValue;

- (double)doubleValue;


NSNumber能夠將基本數據類型包裝起來,造成一個對象,這樣就能夠給其發送消息,裝入NSArray中等等。

NSNumber * intNumber=[NSNumber numberWithInt:100];

NSNumber *floatNumber=[NSNUmber numberWithFloat:100.00];

int i=[intNumber intValue];

if([intNumber isEqualToNumber:floatNumber]) ....

NSNumber繼承NSObject ,能夠使用比較 compare: isEqual等消息

NSNull

  IOS裏面最小簡單的類,裏面只有一個方法+(NSNull*) null;


數學經常使用方法

數學常量:

#define M_E         2.71828182845904523536028747135266250   // e
#define M_LOG2E     1.44269504088896340735992468100189214   // log 2e
#define M_LOG10E    0.434294481903251827651128918916605082  // log 10e
#define M_LN2       0.693147180559945309417232121458176568  // log e2
#define M_LN10      2.30258509299404568401799145468436421   // log e10
#define M_PI        3.14159265358979323846264338327950288   // pi
#define M_PI_2      1.57079632679489661923132169163975144   // pi/2
#define M_PI_4      0.785398163397448309615660845819875721  // pi/4
#define M_1_PI      0.318309886183790671537767526745028724  // 1/pi
#define M_2_PI      0.636619772367581343075535053490057448  // 2/pi
#define M_2_SQRTPI  1.12837916709551257389615890312154517   // 2/sqrt(pi)
#define M_SQRT2     1.41421356237309504880168872420969808   // sqrt(2)
#define M_SQRT1_2   0.707106781186547524400844362104849039  // 1/sqrt(2)

經常使用函數:

指數運算


NSLog(@"%.f", pow(3,2) ); //result 9
NSLog(@"%.f", pow(3,3) ); //result 27

開平方運算
(計算兩點間的距離時用到)

NSLog(@"%.f", sqrt(16) ); //result 4
NSLog(@"%.f", sqrt(81) ); //result 9

上舍入

NSLog(@"res: %.f", ceil(3.000000000001)); //result 4
NSLog(@"res: %.f", ceil(3.00)); //result 3

下舍入


NSLog(@"res: %.f", floor(3.000000000001)); //result 3
NSLog(@"res: %.f", floor(3.9999999)); //result 3

四捨五入

NSLog(@"res: %.f", round(3.5)); //result 4
NSLog(@"res: %.f", round(3.46)); //result 3
NSLog(@"res: %.f", round(-3.5)); //NB: this one returns -4

最小值

NSLog(@"res: %.f", fmin(5,10)); //result 5

最大值

NSLog(@"res: %.f", fmax(5,10)); //result 10

絕對值

NSLog(@"res: %.f", fabs(10)); //result 10
NSLog(@"res: %.f", fabs(-10)); //result 10


NSDate

獲得當前的日期 

        NSDate *date = [NSDate date]; 

日期之間比較可用如下方法

    - (BOOL)isEqualToDate:(NSDate *)otherDate;// 與otherDate比較,相同返回YES

    - (NSDate *)earlierDate:(NSDate *)anotherDate;// 與anotherDate比較,返回較早的那個日期

    - (NSDate *)laterDate:(NSDate *)anotherDate;//與anotherDate比較,返回較晚的那個日期

將日期轉換成字符串

NSLog(@」date = %@」,[data description]);

設置日期顯示格式

       NSDateFormatter *formatter =[[[NSDateFormatter alloc] init] autorelease]; 

        [formatter setTimeStyle:NSDateFormatterFullStyle]; //設置幾種默認的顯示效果

        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss a"];//設置自定義的顯示效果

        NSLog([formatter stringFromDate:date]);

NSData

NSData-> NSString

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSString->NSData

NSString *aString = @"1234abcd";

NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];

相關文章
相關標籤/搜索