简书地址:http://www.jianshu.com/p/5b45ebea3f0f
在iOS开发中NSString被广泛的使用,系统中为NSString提供了很多实用的方法。具体如下:
- 字符串大小写转换
//@property (readonly, copy) NSString *uppercaseString; 字符串全部转为大写
//@property (readonly, copy) NSString *lowercaseString; 字符串全部转为小写
//@property (readonly, copy) NSString *capitalizedString;首字母大写其他转为小写
NSString *string = @"abcdef";
NSString *str = [string uppercaseString];//str = ABCDEF
NSString *str1 = [str lowercaseString];//str1 = abcdef
NSString *str2 = [string capitalizedString];//str2 = Abcdef
//- (BOOL)isEqualToString:(NSString *)aString;
NSString *str1 = @"abcdef";
NSString *str2 = [NSString stringWithFormat:@"abcdef"];
if ([str1 isEqualToString:str2])//比较的是内容
{
NSLog(@"两个字符串的内容一样");
}
if (str1 == str2)//比较的是地址 (这两个字符串地址不一样)
{
NSLog(@"两个字符串的地址一样");
}
- 字符串内容比较
//- (NSComparisonResult)compare:(NSString *)string;大小写会区分比较
//- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string; 忽略大小写比较
NSString *str1 = @"abcdef";
NSString *str2 = @"abdcef";
switch ([str1 compare:str2])
{
case NSOrderedDescending:
{
NSLog(@"str1大于str2");//输出结果 c > d比较每个的ASCII值
}
break;
case NSOrderedSame:
{
NSLog(@"str1等于str2");
}
break;
case NSOrderedAscending:
{
NSLog(@"str1大于str2");
}
break;
default:
break;
}
- 字符串搜索
//- (BOOL)hasPrefix:(NSString *)str;判断是否以str开头
//- (BOOL)hasSuffix:(NSString *)str;判断是否以str结尾
//- (NSRange)rangeOfString:(NSString *)searchString;判断字符串中是否包含searchString
NSString *str1 = @"abcdef";
if ([str1 hasPrefix:@"a"])
{
NSLog(@"str1 以a开头");
}
if ([str1 hasSuffix:@"f"])
{
NSLog(@"str1 以f结尾");
}
if ([str1 rangeOfString:@"bc"].location != NSNotFound)
{
NSLog(@"str1 包含abc 包含开始位置%lu 长度%lu", (unsigned long)[str1 rangeOfString:@"bc"].location, (unsigned long)[str1 rangeOfString:@"bc"].length);//包含开始位置1 长度2
}
- 字符串的截取
//- (NSString *)substringFromIndex:(NSUInteger)from;从from的位置开始截取到最后
//- (NSString *)substringToIndex:(NSUInteger)to;从字符串的开头截取到to的位置
//- (NSString *)substringWithRange:(NSRange)range;
NSString *string = @"abcdefgh";
string = [string substringFromIndex:2];
NSLog(@"%@", string);//cdefgh
string = @"abcdefgh";
string = [string substringToIndex:2];
NSLog(@"%@", string);//ab
//从头开始截取2个,输出余下的3个
string = @"abcdefgh";
NSRange rang ={2, 3};
string = [string substringWithRange:rang];
NSLog(@"%@", string);//cde
- 字符串的替换、拼接、删除、插入和转换
- 字符串的替换
//- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement 将字符串中的target字符用replacement替换
NSString *string = @"abcd---efgh";
string = [string stringByReplacingOccurrencesOfString:@"-" withString:@"*"];
NSLog(@"string %@", string);//string abcd***efgh
NSRange rang = NSMakeRange(4,3);
NSString *string = @"abcd---efgh";
string = [string stringByReplacingCharactersInRange:rang withString:@"*"];
NSLog(@"string %@", string);//string abcd*efgh
- NSString类型的替换
//+ (instancetype)stringWithFormat:(NSString *)format
NSString *str1 = @"apple";
NSString *str2 = @"orange";
NSString *str3 = [NSString stringWithFormat:@"%@,%@", str1, str2];//需不需要逗号看需求
NSLog(@"%@", str3);//apple,orange
//- (NSString *)stringByAppendingString:(NSString *)aString;将aString拼接到字符串后面 没有逗号
str3 = [str3 stringByAppendingString:str2];
NSLog(@"%@", str3);//apple,orangeorange
//- (NSString *)stringByAppendingFormat:(NSString *)format;将format拼接到字符串后面 format中的具体格式可以自己设置
str3 = [str3 stringByAppendingFormat:@"%@%@", str1, str2];//需不需要逗号看需求
NSLog(@"%@", str3);//apple,orangeorangeappleorange
- NSMutableString的替换
//- (void)appendString:(NSString *)aString;
//- (void)appendFormat:(NSString *)format;
NSMutableString *string = [[NSMutableString alloc] init];
NSString *str1 = @"AAA";
NSString *str2 = @"BBB";
[string appendString:@"orange"];
[string appendString:@"apple"];
NSLog(@"string %@", string);//string orangeapple
[string appendFormat:@"%@%@", str1, str2];
NSLog(@"string%@", string);//stringorangeappleAAABBB
//- (void)setString:(NSString *)aString;将字符串替换成aString
[string setString:@"AAA"];
NSLog(@"string %@", string);//string AAA
- NSMutableString的删除
-
NSMutableString *string = [[NSMutableString alloc] init];
[string appendString:@"abcdefghijk"];
NSLog(@"string %@", string);
//- (void)deleteCharactersInRange:(NSRange)range;将字符串的range范围内的字符串全部删除
NSRange range = NSMakeRange(2, 3);
[string deleteCharactersInRange:range];
NSLog(@"string %@", string);
- NSMutableString的插入
NSMutableString *string = [[NSMutableString alloc] init];
[string appendString:@"abcdefghijk"];
NSLog(@"string %@", string);//string abcdefghijk
//- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;从字符串的loc位置后插入aString
[string insertString:@"AAA" atIndex:4];
NSLog(@"string %@", string);//string abcdAAAefghijk
- NSMutableString的转换
NSMutableString *string = [[NSMutableString alloc] init];
[string appendString:@"abcdefghijk"];
NSLog(@"string %@", string);//string abcdefghijk
//- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString; 将字符串range范围内的字符串替换成aString
NSRange range = NSMakeRange(2, 3);
[string replaceCharactersInRange:range withString:@"***"];
NSLog(@"string %@", string);//string ab***fghijk