//
一、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、创建格式化字符串:占位符(由一个%加一个字符组成)
int
i
=
1
;
int
j
=
2
;
NSString
*
astring
=
[[NSString alloc] initWithString:[NSString stringWithFormat:
@"
%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);
/*
----------------从文件读取字符串: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];
/*
---------------- 比较两个字符串----------------
*/
//
用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为 真)
//
不考虑大小写比较字符串2
NSString
*
astring01
=
@"
this is a String!
"
;
NSString
*
astring02
=
@"
This is a String!
"
;
BOOL result
=
[astring01 compare:astring02
options:NSCaseInsensitiveSearch
|
NSNumericSearch]
=
=
NSOrderedSame;
NSLog(
@"
result:%d
"
,result);
//
NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。
/*
----------------改变字符串的大小写----------------
*/
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];
/*
----------------抽取子串 ----------------
*/
//
-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);
//
快速枚举
//
for(NSString *filename in direnum)
//
{
//
if([[filename pathExtension] isEqualToString:@"jpg"]){
//
[files addObject:filename];
//
}
//
}
NSLog(
@"
files:%@
"
,files);
//
枚举
NSEnumerator
*
filenum;
filenum
=
[files objectEnumerator];
while
(filename
=
[filenum nextObject]) {
NSLog(
@"
filename:%@
"
,filename);
}
@"
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];
/*
--------------------------- 切分数组------------------------------
*/
//
从字符串分割到数组- componentsSeparatedByString:
NSString
*
string
=
[[NSString alloc] initWithString:
@"
One,Two,Three,Four
"
];
NSLog(
@"
string:%@
"
,
string
);
NSArray
*
array
=
[
string
componentsSeparatedByString:
@"
,
"
];
NSLog(
@"
array:%@
"
,array);
[
string
release];
//
从数组合并元素到字符串- componentsJoinedByString:
NSArray
*
array
=
[[NSArray alloc] initWithObjects:
@"
One
"
,
@"
Two
"
,
@"
Three
"
,
@"
Four
"
,nil];
NSString
*
string
=
[array componentsJoinedByString:
@"
,
"
];
NSLog(
@"
string:%@
"
,
string
);
/*
***********************************************************************
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);
/*
------------- 数组枚举---------------
*/
//
- (NSEnumerator *)objectEnumerator;从前向后
//
NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"
One
"
,
@"
Two
"
,
@"
Three
"
,nil];
NSEnumerator
*
enumerator;
enumerator
=
[array objectEnumerator];
id thingie;
while
(thingie
=
[enumerator nextObject]) {
NSLog(
@"
thingie:%@
"
,thingie);
}
//
- (NSEnumerator *)reverseObjectEnumerator;从后向前
//
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];
/*
*******************************************************************************
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中 ------------------------------------
*/
//
将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);
/*
*************************************************************************
从目录搜索扩展名为jpg的文件
****************************************************************************
*/
//
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString
*
home;
home
=
@"
../Users/
"
;
NSDirectoryEnumerator
*
direnum;
direnum
=
[fileManager enumeratorAtPath: home];
NSMutableArray
*
files
=
[[NSMutableArray alloc] init];
//
枚举
NSString
*
filename;
while
(filename
=
[direnum nextObject]) {
if
([[filename pathExtension] hasSuffix:
@"
jpg
"
]){
[files addObject:filename];
}
}
//
扩展路径
NSString
*
Path
=
@"
~/NSData.txt
"
;
NSString
*
absolutePath
=
[Path stringByExpandingTildeInPath];
NSLog(
@"
absolutePath:%@
"
,absolutePath);
NSLog(
@"
Path:%@
"
,[absolutePath stringByAbbreviatingWithTildeInPath]);
//
文件扩展名
NSString
*
Path
=
@"
~/NSData.txt
"
;
NSLog(
@"
Extension:%@
"
,[Path pathExtension]);
/*
**********************************************************************
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);
/*
-------------判断字符串内是否还包含别的字符串(前缀,后缀)-------------
*/
//
01: 检查字符串是否以另一个字符串开头- (BOOL) hasPrefix: (NSString *) aString;
NSString
*
String1
=
@"
NSStringInformation.txt
"
;
[String1 hasPrefix:
@"
NSString
"
]
=
=
1
?
NSLog(
@"
YES
"
) : NSLog(
@"
NO
"
);
[String1 hasSuffix:
@"
.txt
"
]
=
=
1
?
NSLog(
@"
YES
"
) : NSLog(
@"
NO
"
);
//
02: 查找字符串某处是否包含其它字符串 - (NSRange) rangeOfString: (NSString *) aString,这一点前面在串中搜索子串用到过;
/*
*************************************************************************
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]);
//
- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;
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];
//
Deep copy
//
NSMutableArray *newArray = [[NSMutableArray alloc] init];
NSArray
*
oldArray
=
[NSArray arrayWithObjects:
@"
a
"
,
@"
b
"
,
@"
c
"
,
@"
d
"
,
@"
e
"
,
@"
f
"
,
@"
g
"
,
@"
h
"
,nil];
NSLog(
@"
oldArray:%@
"
,oldArray);
newArray
=
(NSMutableArray
*
)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);
NSLog(
@"
newArray:%@
"
, newArray);
[newArray release];
//
Copy and sort
//
NSMutableArray *newArray = [[NSMutableArray alloc] init];
NSArray
*
oldArray
=
[NSArray arrayWithObjects: