【iOS 基础】NSString 类
来源:互联网 发布:sql 试图的意义 编辑:程序博客网 时间:2024/05/27 16:41
在IOS的开发过程中,NSString绝对是一个经常使用的类, 最近一直在对字符串进行各种操作, 索性停下来总结一下这个基础类,各位看官请轻喷,有问题大家一起互动。
OBjective-C 中处理字符串的类有两个:NSString 和 NSMutableString。
NSString 为不可变字符串,内容和长度不能进行动态更改,NSMutableString 为可变字符串,创建之后可以动态的改变该字符串的内容和长度。
1,字符串的创建
NSString *str =@"字面量创建字符串";
NSString *str1 = [NSStringnew];
NSString *str2 = [[NSStringalloc]initWithString:@"等同于1"];
NSString *str3 = [NSStringstringWithFormat:@"%@",@"字符串"];
2, 字符串的追加
在字符串的末尾追加:
NSString *temp =@"临时字符串";
NSString *str = [tempstringByAppendingString:temp];
在指定的范围追加:
NSString *str1 =@"奋斗中,奋斗中";
NSRange rang = {4,0}; // 4代表从哪个索引开始插入, 0代表覆盖几个字符
NSString *str2 = [str1stringByReplacingCharactersInRange:rangwithString:@"我在"];
格式化字符串:
int num =666;
float height = 8.8;
char* charstr = "rose";
NSString *str3 = [NSStringstringWithFormat:@"他买了%d朵 %s,每朵都有%.f厘米高",num,charstr,height];
3, 字符串的截取
NSString *str =@"你是我的小呀小苹果";
// 字符串长度
NSUInteger length = [strlength];
//根据索引获得单个字符
unichar cstr = [strcharacterAtIndex:3];
//从指定的索引位置开始截取字符串到末尾
NSString *str1 = [strsubstringFromIndex:3];
//从字符串首位开始截取到指定索引位置
NSString *str2 = [strsubstringToIndex:4];
//截取字符串从某个位置开始到某个位置结束
NSRange rang = {2,3};
NSString *str3 = [strsubstringWithRange:rang];
//获得一个字符串在字符串中的索引位置,长度
NSRange charrang = [strrangeOfString:str3];
4, 字符串的判断
NSString *str =@"字符串比较";
NSString *str1 =@"字符串";
NSString *str2 =@"字符串";
// 判断是否为空
if (str ==nil || str1.length ==0)
{
NSLog(@"字符串为空");
}
else
{
NSLog(@"字符串不为空");
}
//判断是否相等比较
//判断内存地址是否相同
if (str1 == str2)
{
NSLog(@"str1: %p, str2: %p",str1,str2);
}
//判断两个字符串是否相等
if ([str1isEqualToString:str2])
{
NSLog(@"先判断字符串的地址是否相同,相同了,再判断字符串是否相同");
}
// ASICC 值比较
NSComparisonResult result = [str1compare:str2];
switch (result)
{
caseNSOrderedAscending:
NSLog(@"str1小于 str2");
break;
caseNSOrderedSame:
NSLog(@"str1等于 str2");
break;
caseNSOrderedDescending:
NSLog(@"str1大于 str2");
break;
default:
break;
}
//字符串以开头结尾比较
if ([str1hasPrefix:@"字符"])
{
NSLog(@"字符串str1是以'字符'开头的");
}
if ([strhasSuffix:@"比较"])
{
NSLog(@"字符串str是以'比较'结尾的");
}
NSString *str3 =@"This is a String";
NSString *str4 =@"this is a string";
//不区分大小写比较
NSComparisonResult unResult = [str3caseInsensitiveCompare:str4];
switch (unResult)
{
case0:
NSLog(@"str3 = str4");
break;
case -1:
NSLog(@"str3 < str4");
break;
case1:
NSLog(@"str3 > str4");
break;
default:
break;
}
// NSCaseInsensitiveSearch :进行完全比较,区分大小写
// NSNumericSearch:比较字符串的字符个数,而不是字符值
[str3 compare:str4options:NSCaseInsensitiveSearch |NSNumericSearch];
5, 字符串的转换
//字符串转化成基本数据类型
NSString *intStr =@"123456";
int num = [intStrintValue];
NSString *floatStr =@"88.88";
float fnum = [floatStrfloatValue];
double dnum = [floatStrdoubleValue];
//基本类型转化为字符串
int a =10;
NSString *iStr = [NSStringstringWithFormat:@"%d",a];
float f =10.8;
NSString *fStr = [NSStringstringWithFormat:@"%.f",f];
double d =10.8888;
NSString *dStr = [NSStringstringWithFormat:@"%.4f",d];
char* cc ="cccc";
NSString *cStr = [NSStringstringWithFormat:@"%s",cc];
//字符串转化成大小写
NSString *str =@"abCDefg";
NSString *str1 = [struppercaseString]; // 全部转化为大写
NSString *str2 = [strlowercaseString]; // 全部转化为小写
NSString *str3 = [strcapitalizedString]; // 首字母转化为大写,其余为小写
字符串转日期在以后介绍,这次先不介绍.
6, 字符串的替换
//替换特定字符
NSString *str =@"www.baidu.com";
NSString *str1 = [strstringByReplacingOccurrencesOfString:@"om"withString:@"n"];
// 删除特定字符
NSString *str2 =@"www---.baidu.--com";
NSString *str3 = [str2stringByReplacingOccurrencesOfString:@"-"withString:@""];
//去掉字符串中的空格
NSString *str4 =@"www .baidu .com";
NSString *str5 = [str4stringByReplacingOccurrencesOfString:@" "withString:@""];
// 设置替换的区域
NSString *str6 = [strstringByReplacingOccurrencesOfString:@"w"withString:@"a"options:NSCaseInsensitiveSearchrange:NSMakeRange(1,1)];
7, 字符串转换
// 字符串转数组
+ (NSArray *)arrayFromString:(NSString *)string withMark:(NSString *)markString
{
if ([stringisEqualToString:@""] || [markStringisEqualToString:@""])
{
returnnil;
}
NSArray *result = [stringcomponentsSeparatedByString:markString];
return result;
}
// 数组转字符串
+ (NSString *)stringFromArray:(NSArray *)array withMark:(NSString *)markString
{
if ((!array ||0 == array.count) || [markStringisEqualToString:@""])
{
returnnil;
}
NSString *result = [arraycomponentsJoinedByString:markString];
return result;
}
8, 可变字符串
//创建的两种方式,任选其一
NSMutableString *mutStr = [[NSMutableStringalloc]init];
NSMutableString *mutStr = [[NSMutableString alloc] initWithCapacity:0];
// 初始化字符串
[mutStrsetString:@"核桃"];
//动态的在字符串末尾追加
[mutStrappendString:@"圣女果"];
//在指定的索引位置插入字符串
[mutStr insertString:@"好吃!"atIndex:3];
//删去指定范围的字符串
NSRange rang = {2,3};
[mutStr deleteCharactersInRange:rang];
//替换指定范围的字符串
[mutStr replaceCharactersInRange:rangwithString:@"abcd"];
这次的总结就先写到这里, 还有字符串的遍历,改变字符串中某个字符的颜色等, 会在下一次总结中一一道来.
- 【iOS 基础】NSString 类
- iOS 基础类解析 - NSString
- iOS 基础类解析 - NSString、NSMutableString
- iOS基础一 NSString
- IOS基础 NSString 和 NSMutableString
- ios-基础之【6】-NSString
- iOS基础:NSString常用方法
- Foundation基础 --- NSString类
- NSString类基础总结
- iOS- 基础 [NSString boolValue]结果分析
- IOS NSString
- IOS NSString
- ios NSString
- iOS-NSString ? :
- ios NSString
- IOS-Nsstring
- NSString ios
- 【IOS开发基础】之判断NSString为纯数字
- <jsp:directive.page import=""/> 和<%@ page import="" %>的区别
- Socket通信原理和实践
- Cordova文件传输插件fileTransfer
- Linux下的硬链接和软连接
- Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so
- 【iOS 基础】NSString 类
- 第一篇博客
- log4j
- Android SurfaceView(一:API简介)
- Git入门指南
- 64位进程调用32位dll的解决方法
- 安卓中文翻译组
- Installation error: INSTALL_FAILED_MEDIA_UNAVAILABLE
- 关于微信营销