NSString *str = @"我是一个\0字符串!";
//获取字符串的长度,不是有效长度,遇到\0不会结束;
NSUInteger a = [str length];
NSLog(@"%lu",a);//9
NSLog(@"%lu",sizeof(str));//8
//获取字符串指定位置的字符
// unichar 万国码 typedef unsigned short unichar;
// - (unichar)characterAtIndex:(NSUInteger)index;
// %C 输出。 %c,// * %hu,//20010 为什么?
unichar ch =[str characterAtIndex:3];
NSLog(@"%C",ch);
//字符串的比较
//1.比较两个字符串是否相等 BOOL 为YES 或 NO
// - (BOOL)isEqualToString:(NSString *)aString;
//用 C 比较:strcmp 函数
char stringc1[] = "string!";
char stringc2[] = "string!"; if(strcmp(stringc1, stringc2) == 0) {
NSLog(@"相等"); }
// oc
NSString *string2 = @"ABCDE";
BOOL isequal = [str isEqualToString:string2];
NSLog(@"%d",isequal);
if (isequal) {
NSLog(@"两个字符串相等");
}else
{
NSLog(@"两个字符串不相等");
}
NSString *str2 = @"ABCDE";
BOOL is = [string2 isEqualToString:str2];
if (is) {
NSLog(@"两个字符串相等");
}else
{
NSLog(@"两个字符串不相等");
}
//2.比较两个字符串的大小
// NSComparisonResult
// typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};
//NSOrderedSame 判断两者内容是否相同
//NSOrderedAscending 判断两对象值的大小(按字母顺序进行比较,astring01 小于 astring02 为真)
//NSOrderedDescending 判断两对象值的大小(按字母顺序进行比较,astring01 大于 astring02 为真)
// - (NSComparisonResult)compare:(NSString *)string;
NSComparisonResult ret = [str2 compare:string2];
NSLog(@"%ld",ret);//compare 返回值为 -1 0 1
if(ret==NSOrderedSame)
{
NSLog(@"str2===string2");
}else if (ret==NSOrderedDescending)
{
NSLog(@"str2>>>string2");
}else
{
NSLog(@"str2<<<string2");
}
//3. 不考虑大小写比较字符串
NSString *astring01 = @"this is a String!";
NSString *astring02 = @"This is a String!";
BOOL resu = [astring01 caseInsensitiveCompare:astring02] == NSOrderedSame;
NSLog(@"result:%d",resu);
/* enum _NSComparisonResult {
NSOrderedAscending = -1,
astring01 小于 astring02 NSOrderedSame, astring01 等于 astring02 NSOrderedDescending astring01 大于 astring02 };
*/
//4.在字符串中查找子串的位置 返回子串出现的范围
/* typedef struct _NSRange {
NSUInteger location;//出现的首位置
NSUInteger length;//字符串的长度
} NSRange;
*/
NSRange range = [string2 rangeOfString:@"CD"];
//NSNotFound 是最⼤的正整数,如果 location==NSNotFound代表没有查找到该⼦子串
// NSNotFound :enum {NSNotFound = NSIntegerMax};
if(range.length==NSNotFound)
{
NSLog(@"没有查到该子串");
}else
{
NSLog(@"range.location==%lu,range.length==%lu",range.location,range.length);
}
//5.在字符串中截取⼦子串
// 从指定下标开始直到字符串结尾
//-substringFromIndex: 从指定位置开始(包括指定位置的字符)提取,并包 括之后的全部字符 直到最后;
NSString *string3 = @"This is a string";
NSString *string4 = [string3 substringFromIndex:3]; NSLog(@"string4:%@",string4);
// -substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
NSString *string5 = [string3 substringToIndex:6];
NSLog(@"%@",string5);
// -substringWithRange: //在指定范围内从字符串中截取子串
NSString *string6 = [string3 substringWithRange:NSMakeRange(3, 6)];
NSLog(@"%@",string6);
//6.改变字符串的大小写
//转大写
NSString *str6 = [string3 uppercaseString];
NSLog(@"%@",str6);
//转小写
NSString *str7 = [str6 lowercaseString];
NSLog(@"%@",str7);
//首字母大写
NSString *str8 = [str7 capitalizedString];
NSLog(@"%@",str8);
//7.判断前缀 后缀
// 检查字符串是否以另一个字符串开头- (BOOL) hasPrefix: (NSString *)aString; (判断前缀)
NSString *Sting1 = @"NSStingInformation.txt";
[Sting1 hasPrefix:@"NSSting"] == 1 ? NSLog(@"YES") : NSLog(@"NO");
//检查字符串是否以另一个字符串结尾- (BOOL) hasSuffix: (NSString *) aString; (判断后缀)
[Sting1 hasSuffix:@"txt"]== 1 ? NSLog(@"YES"):NSLog(@"NO");
//8.去除字符串首末的空格
NSString *stri = @" space in front at the end ";
NSString *trimmedString = [stri stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@",trimmedString);