//
// main.m
// OC语言学习
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//Foundation——NSString类用于处理字符串对象
//description方法
/*
可以使用格式化字符%@显示数组、字典和集合的全部内容。
通过覆盖继承的description方法,还可以使用这些格式字符显示你自己的类对象。
如果不覆盖方法,NSLog仅仅显示类名和该对象在内存中的地址,这是从NSObject类继承的description方法的默认实现。
*/
//基本的字符串操作
NSString *str1 = @"this is string A";
NSString *str2 = @"this is string B";
NSString *res;
NSComparisonResult compareResult;
//计算字符串中的字符
NSLog(@"字符串str1的长度 =%lu",[str1 length]); //str1的长度 =16
//将一个字符串复制到另一个字符串
res = [NSString stringWithString:str1];
NSLog(@"res= %@",res); //res= this is string A
//将一个字符串复制到另一个字符串的末尾
str2 = [str1 stringByAppendingString:str2];
NSLog(@"连接:%@",str2); //连接:this is string Athis is string B
//判断2个字符串是否相等
if ([str1 isEqualToString:res] == YES) {
NSLog(@"str1 == res"); //str1 == res
}else{
NSLog(@"str1 != res");
}
//判断一个字符串是否小于、等于或大于另一个字符串
if ([str1 compare:str2] == NSOrderedAscending) {
NSLog(@"str1 < str2"); //str1 < str2
}else if ([str1 compare:str2] == NSOrderedSame){
NSLog(@"str1 == str2");
}else if ([str1 compare:str2] == NSOrderedDescending){
NSLog(@"str1 > str2");
}
//将字符串转换为大写
res = [str1 uppercaseString];
NSLog(@"res =%s",[res UTF8String]); //res =THIS IS STRING A
//将字符串转换为小写
res = [str1 lowercaseString];
/*
语句: res = [NSString stringWithString:str1];
在这里进行的实际上是字符串内容的复制,而不是对内存中同一个字符串的引用。
即 str1 和 res 指向的两个不同的字符串对象,这与简单的赋值操作不同:res = str1;
*/
}
return 0;
}