字符串在软件开发中是最常用的数据类型,我们一起来学习OC里面的字符串各大操作
下面是字符串常用的基本操作,各种语言中都会涉及到这样的操作.
例子:
//
// main.m
// Foundation-NSString
//
// Created by 5016 on 13-12-11.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//NSString类 子类:NSMutableString
//1.创建一个字符串常量
NSString *str1 = @"这是一个字符串常量";
NSLog(@"str1 = %@",str1);
//2.创建一个空的字符串
NSString *str2 = [[NSString alloc] init];
NSString *str3 = [NSString string];
NSLog(@"str2 = %@",str2);
NSLog(@"str3 = %@",str3);
//3.快速创建一个字符串 常量区
NSString *str4 = [[NSString alloc] initWithString:@"dragon"];
NSString *str5 = @"dragon";//等价于[NSString stringWithString:@"dragon"];
NSLog(@"str4 = %@",str4);
NSLog(@"str5 = %@",str5);
//4.创建一个格式化的字符串 堆区
NSString *str6 = [[NSString alloc] initWithFormat:@"整数%d",23];
NSString *str7 = [NSString stringWithFormat:@"浮点数%f",22.23];
NSString *str = [NSString stringWithFormat:@"整数%d",23];
NSLog(@"str6 = %@",str6);
NSLog(@"str7 = %@",str7);
//5.比较内容是否相同 isEqualToString
if([str6 isEqualToString:str7]){
NSLog(@"相同");
}else{
NSLog(@"不相同");
}
if([str isEqualToString:str6]){
NSLog(@"相同");
}else{
NSLog(@"不相同");
}
//6.判断指针是否指向同一个地方 == (不仅内容相同,而且空间相同)NSMutableString则是在堆区
//证明在常量区
NSString *str8 = [NSString stringWithString:@"DRAGON"];
NSString *str9 = [NSString stringWithString:@"DRAGON"];
if(str8 == str9){
NSLog(@"相同");
}else{
NSLog(@"不相同");
}
//证明在堆区
NSString *str10 = [NSString stringWithFormat:@"DRAGON"];
NSString *str11 = [NSString stringWithFormat:@"DRAGON"];
if(str10 == str11){
NSLog(@"相同");
}else{
NSLog(@"不相同");
}
//7.比较字符串的大小(根据ASCII码) caseInsensitiveCompare 返回是一个整型: -1 0 1
NSString *str12 = [NSString stringWithFormat:@"abc"];
NSString *str13 = [NSString stringWithFormat:@"bce"];
NSComparisonResult result = [str12 caseInsensitiveCompare:str13];
NSLog(@"%ld",result);
//8.求字符串长度
NSLog(@"str13的长度=%ld",[str13 length]);
//9.字符串的转换
NSString *str14 = @"DrAgon-yeah";
NSLog(@"转换成大写字母:%@",[str14 uppercaseString]);
NSLog(@"转换成小写字母:%@",[str14 lowercaseString]);
NSLog(@"转换成首字母大写:%@",[str14 capitalizedString]);
//10.转换成为基本数据类型
// - (double)doubleValue;
// - (float)floatValue;
// - (int)intValue;
// - (NSInteger)integerValue NS_AVAILABLE(10_5, 2_0);
// - (long long)longLongValue NS_AVAILABLE(10_5, 2_0);
// - (BOOL)boolValue NS_AVAILABLE(10_5, 2_0);
NSString *str15 = @"3.141592";
float pi = [str15 floatValue];
NSLog(@"pi=%f",pi);
//11.把字符串转换成为数组(必须有规律)componentsSeparatedByString
NSString *str16 = @"dragon is a good man";
NSArray *array = [str16 componentsSeparatedByString:@" "];
NSLog(@"array = %@",array);
//12.截取字符串
NSString *str17 = [str16 substringToIndex:6];//截取到哪里,取子串
NSString *str18 = [str16 substringFromIndex:6];//从哪里开始截取,取子串
NSLog(@"str17 = %@",str17);
NSLog(@"str18 = %@",str18);
NSString *str19 = [str16 substringWithRange:NSMakeRange(6, 3)];//范围截取
NSLog(@"str19 = %@",str19);
//13.拼接字符串
NSString *str20 = @"good";
NSString *str21 = @"man";
NSString *str22 = [[NSString alloc] initWithFormat:@"%@ %@",str20,str21];//初始化
NSLog(@"str22 = %@",str22);
NSString *str23 = [str20 stringByAppendingString:str21];//追加
NSLog(@"str23 = %@",str23);
NSString *str24 = [str20 stringByAppendingFormat:@" %@",str21];//格式化拼接
NSLog(@"str24 = %@",str24);
//14.查找字符串
NSRange range = [str16 rangeOfString:@"good"];//返回位置12,长度4
NSLog(@"range = %@",NSStringFromRange(range));//转换成为字符串
if(range.location != NSNotFound){//NSNotFound是字符串最大长度值
NSLog(@"已经找到");
}
}
return 0;
}