Foundation: NSSTring 的基本用法
2017-11-13 本文已影响1人
一生信仰
常用API
Substrings( 截取字符串)
- (NSString *)substringFromIndex:(NSUInteger)from;
- (NSString *)substringToIndex:(NSUInteger)to;
- (NSString *)substringWithRange:(NSRange)range;
String comparison and equality( 字符串的比较 )
typedef NS_ENUM(NSInteger,NSComparisonResult){
NSOrderedAscending = -1L, //升序,相同和降序
NSOrderedSame,
NSOrderedDescending
};
typedef NS_OPTIONS(NSUInteger, NSStringCompareOptions) {
NSCaseInsensitiveSearch = 1, //不区分大小写排序
NSLiteralSearch = 2, //逐字节比较 区分大小写
NSBackwardsSearch = 4, //从字符串后面开始检索排序
NSAnchoredSearch = 8, /搜索限制范围的字符串(如果搜索 选项含有“搜索限制范围的字符串”)
NSNumericSearch = 64, //按照字符串里的第一组数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt
NSDiacriticInsensitiveSearch //忽略字符“-”
NSWidthInsensitiveSearch //忽略字符串的长度,比较出结果
NSForcedOrderingSearch //忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者NSOrderedDescending,
NSRegularExpressionSearch //只能应用于 rangeOfString:...,stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch
};
- (NSComparisonResult)compare:(NSString*)string; //两个字符串的比较,返回排序结果
- (NSComparisonResult)compare:(NSString*)string options:(NSStringCompareOptions)mask; //带有NSStringCompareOptions选项的排序结果
- (NSComparisonResult)compare:(NSString*)string options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToCompare;//排序范围为sourceString(源字符串)的范围
- (NSComparisonResult)compare:(NSString*)string options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToCompare locale:(nullable id)locale; //locale为NSLocale类型,APP当前使用的地区语言
- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string;//不区分大小写比较
- (NSComparisonResult)localizedCompare:(NSString*)string;//根据当前app使用的地方文字进行排序
- (NSComparisonResult)localizedCaseInsensitiveCompare:(NSString *)string;//根据当前app使用的地方文字进行不区分大小写排序
String searching(字符串搜索)
- (BOOL)hasPrefix:(NSString *)str; //带有前缀
- (BOOL)hasSuffix:(NSString *)str; //带有后缀
- (BOOL)containsString:(NSString *)str; //包含子字符串
- (BOOL)localizedCaseInsensitiveContainsString:(NSString *)str;
- (BOOL)localizedStandardContainsString:(NSString *)str;
- (NSRange)localizedStandardRangeOfString:(NSString *)str;
- (NSString*)commonPrefixWithString:(NSString*)str options:(NSStringCompareOptions)mask; //比较两个字符是否带有相同前缀
- (NSRange)rangeOfString:(NSString *)searchString;//子字符串在字符串的位置
- (NSRange)rangeOfString:(NSString*)searchString options:(NSStringCompareOptions)mask;
- (NSRange)rangeOfString:(NSString*)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch;
- (NSRange)rangeOfString:(NSString*)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch locale:( NSLocale *)locale
Case changing(大小写变换)
@property (readonly, copy) NSString *uppercaseString;
@property (readonly, copy) NSString *lowercaseString;
@property (readonly, copy) NSString *capitalizedString;
@property (readonly, copy) NSString *localizedUppercaseString
@property (readonly, copy) NSString *localizedLowercaseString
@property (readonly, copy) NSString *localizedCapitalizedString
- (NSString *)uppercaseStringWithLocale:(nullable NSLocale *)locale NS_AVAILABLE(10_8, 6_0);
- (NSString *)lowercaseStringWithLocale:(nullable NSLocale *)locale NS_AVAILABLE(10_8, 6_0);
- (NSString *)capitalizedStringWithLocale:(nullable NSLocale *)locale NS_AVAILABLE(10_8, 6_0);
Finding lines, sentences, words(查找行,句子,段落)
typedef NS_OPTIONS(NSUInteger, NSStringEnumerationOptions) {
NSStringEnumerationByLines = 0, //按行查找
NSStringEnumerationByParagraphs = 1, //按段落查找
NSStringEnumerationByComposedCharacterSequences = 2,
NSStringEnumerationByWords = 3, //按字查找
NSStringEnumerationBySentences = 4, //按句子查找
NSStringEnumerationReverse = 1UL << 8,
NSStringEnumerationSubstringNotRequired = 1UL << 9,
NSStringEnumerationLocalized = 1UL << 10 // User's default locale
};
// 按NSStringEnumerationOptions选项进行文本遍历
- (void)enumerateSubstringsInRange:(NSRange)range options:(NSStringEnumerationOptions)opts usingBlock:(void (^)(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop))block ;
- (void)enumerateLinesUsingBlock:(void (^)(NSString *line, BOOL *stop))block;
trim、componentSeparator、replace(字符串的裁剪、分割、替换)
- (NSArray<NSString *> *)componentsSeparatedByString:(NSString *)separator;//常见的分割url获取文件名
- (NSArray<NSString *> *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator//按字符集的方式分割,用得较少
- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set; //常见的去除头尾的空白和换行符whitespaceCharacterSet
- (NSString *)stringByPaddingToLength:(NSUInteger)newLength withString:(NSString *)padString startingAtIndex:(NSUInteger)padIndex;
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;
//按options方式查找,并指定字符串替换目标字符串的的相关查找位置的字符
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange ;