基本所有的app都会跟NSString打交道吧,无论是网络请求,数据存储,还是单纯的页面显示。下面列举一下项目中用到的NSString 的方法
场景一:组合多个不同的类型、内容的对象成为一个新的NSString
这样的情况相信很多人都遇到过,基本上我们的解决方法就是使用
NSString *finalStr =
[NSString stringWithFormat:@"finalStr Format is %@ and %@", strONe, strTwo];
场景二:用anotherString替换掉原NSString中的某些originalString
在我们的项目中,由于涉及很多提示,会有一个errorList列表,里面列出了相关的网络请求返回的错误信息对应的提示内容errorMessage。errorMessage提示内容里面,会有一些特殊的{ i }(i = 0,1,2,3…), 我们会用请求返回的信息里面的特定字段取缔这些{ i }。
NSString *errorMessage =
[errorMessage stringByReplacingOccurrencesOfString: originalString withString: anotherString];
场景三:提取NSString中某一部分
已经知道会返回什么内容,固定格式的情况下,我们可以偷懒,直接一步到位。
例如,返回的backString = @”XXX say: he is 18.” xxx是名字
那么,我们如果要提取返回内容的名字出来,就可以直接这样做:
NSString *name = [[backString componentsSeparatedByString:@" "] objectAtIndex:0];
根据“ ”空格,将backString间隔成一个NSArray的各个元素,提取index为0的元素,就是我们想要获取的XXX了。
当然这些都要在知道返回内容具体格式的情况下使用,不然很容易出乱子。
如果没有特定的可以用于分离字符串的字符,但是格式还是固定的,那我们可以根据我们要获取的子字符串在父字符串中的固定位置提取他们
例如我们知道一个18位的身份证号码,那么,对应的出生日期就知道了,因为其中的第7~10位为出生年份,11~12位为月份,13~14为日期。
NSString *birthDay = [birthday substringWithRange: NSMakeRange(12, 2)];
NSString *birthMonth = [birthday substringWithRange:NSMakeRange(10, 2)];
NSString *birthYear = [birthday substringWithRange:NSMakeRange(6, 4)];
场景四: 在NSString后再加上另一段NSString
拼接字符串
NSString *validityDate = [validityDate stringByAppendingString:addStr];
场景五:去掉字符串中的某些特殊的字符、符号组合
当要去掉的内容满足NSCharacterSet设置的时候,就可以中下面的方法直接去掉。当然也可以自己定义特定的NSCharacterSet。
NSString *finalStr = [oldStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
场景六:再续