NSString部分属性和方法介绍

来源:互联网 发布:uv数据 编辑:程序博客网 时间:2024/06/01 10:41
// 指定编码和字节数初始化NSString对象
- (instancetype)initWithBytes:(const void *)bytes
                       length:(NSUInteger)length
                     encoding:(NSStringEncoding)encoding


// 指定缓冲区,编码和字节数初始化NSString对象
- (instancetype)initWithBytesNoCopy:(void *)bytes
                             length:(NSUInteger)length
                           encoding:(NSStringEncoding)encoding
                       freeWhenDone:(BOOL)flag


// 指定unichar字符,字节长度初始化NSSting 对象
- (instancetype)initWithCharacters:(const unichar *)characters
                            length:(NSUInteger)length


// 指定缓冲区,编码和字节长度初始化NSSting 对象
- (instancetype)initWithCharactersNoCopy:(unichar *)characters
                                  length:(NSUInteger)length
                            freeWhenDone:(BOOL)flag


// 指定编码初始化C字符串
- (instancetype)initWithCString:(const char *)nullTerminatedCString
                       encoding:(NSStringEncoding)encoding


// char 转化为NSString对象
- (instancetype)initWithUTF8String:(const char *)bytes


// 本地化格式化字符串初始化NSSting 对象
- (instancetype)initWithFormat:(NSString *)format
                     arguments:(va_list)argList
- (instancetype)initWithFormat:(NSString *)format
                        locale:(id)locale
- (instancetype)initWithFormat:(NSString *)format
                        locale:(id)locale
                     arguments:(va_list)argList


- (instancetype)initWithData:(NSData *)data
                    encoding:(NSStringEncoding)encoding


- (instancetype)initWithContentsOfFile:(NSString *)path
                              encoding:(NSStringEncoding)enc
                                 error:(NSError * _Nullable *)error
- (instancetype)initWithContentsOfFile:(NSString *)path
                          usedEncoding:(NSStringEncoding *)enc
                                 error:(NSError * _Nullable *)error


// 写入文件
atomically:如果为YES则保证文件的写入原子性,就是说会先创建一个临时文件,直到文件内容写入成功再导入到目标文件里.
如果为NO,则直接写入目标文件里
- (BOOL)writeToFile:(NSString *)path
         atomically:(BOOL)useAuxiliaryFile
           encoding:(NSStringEncoding)enc
              error:(NSError * _Nullable *)error
- (BOOL)writeToURL:(NSURL *)url
        atomically:(BOOL)useAuxiliaryFile
          encoding:(NSStringEncoding)enc
             error:(NSError * _Nullable *)error


// 字符串编码时需要用的字节长度
- (NSUInteger)lengthOfBytesUsingEncoding:(NSStringEncoding)enc


// 字符串编码时需要用到最大字节长度
- (NSUInteger)maximumLengthOfBytesUsingEncoding:(NSStringEncoding)enc


// 返回在字符串中的某个位置的字符
- (unichar)characterAtIndex:(NSUInteger)index


// 截取字符串指定段,返回类型unichar
- (void)getCharacters:(unichar *)buffer
                range:(NSRange)aRange
// 指定缓冲区转换
- (BOOL)getBytes:(void *)buffer
       maxLength:(NSUInteger)maxBufferCount
      usedLength:(NSUInteger *)usedBufferCount
        encoding:(NSStringEncoding)encoding
         options:(NSStringEncodingConversionOptions)options
           range:(NSRange)range
  remainingRange:(NSRangePointer)leftover


// char编码转换
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding


// 指定最大缓冲区长度进行char编码转换
- (BOOL)getCString:(char *)buffer
         maxLength:(NSUInteger)maxBufferCount
          encoding:(NSStringEncoding)encoding


// UTF8字符串
@property(readonly) const char *UTF8String


// 比较字符串,不考虑大小写
- (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString


// 本地化比较字符串,不考虑大小写
- (NSComparisonResult)localizedCaseInsensitiveCompare:(NSString *)aString


// 比较字符串,考虑大小写
- (NSComparisonResult)compare:(NSString *)aString


// 本地化比较字符串,考虑大小写
- (NSComparisonResult)localizedCompare:(NSString *)aString


// 以某些条件比较字符串
enum{
    NSCaseInsensitiveSearch = 1,//不区分大小写比较
    NSLiteralSearch = 2,//区分大小写比较
    NSBackwardsSearch = 4,//从字符串末尾开始搜索
    NSAnchoredSearch = 8,//搜索限制范围的字符串
    NSNumbericSearch = 64//按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt
    NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符号的比较
    NSWidthInsensitiveSearch = 256,//忽略字符串的长度,比较出结果
    NSForcedOrderingSearch = 512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending
    NSRegularExpressionSearch = 1024//只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch
}
- (NSComparisonResult)compare:(NSString *)aString
                      options:(NSStringCompareOptions)mask
// 以某些条件比较字符串的指定段
- (NSComparisonResult)compare:(NSString *)aString
                      options:(NSStringCompareOptions)mask
                        range:(NSRange)range


// 以某些条件本地化比较字符串的指定段
- (NSComparisonResult)compare:(NSString *)aString
                      options:(NSStringCompareOptions)mask
                        range:(NSRange)range
                       locale:(id)locale


// 字符串的hash地址
@property(readonly) NSUInteger hash


// 向字符串中循环添加指定字符串到指定长度
newLength 添加到指定长度
padString 指定字符串
padIndex 从指定字符串的padIndex开始添加
- (NSString *)stringByPaddingToLength:(NSUInteger)newLength
                           withString:(NSString *)padString
                      startingAtIndex:(NSUInteger)padIndex
// 分割字符串,转化为数组
- (NSArray<NSString *> *)componentsSeparatedByString:(NSString *)separator


// 依据字符编码,分割字符串
- (NSArray<NSString *> *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator


// 修剪字符串
- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set


// 判断是否包含字符串,忽略大小写
- (BOOL)localizedCaseInsensitiveContainsString:(NSString *)str


- (BOOL)localizedStandardContainsString:(NSString *)str
- (NSRange)localizedStandardRangeOfString:(NSString *)str


// 指定字符集搜索
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet
                           options:(NSStringCompareOptions)mask
- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet
                           options:(NSStringCompareOptions)mask
                             range:(NSRange)aRange


// 枚举字符串所有行
- (void)enumerateLinesUsingBlock:(void (^)(NSString *line,
                                   BOOL *stop))block


// 检查是否在指定范围内是否有匹配的字符串
- (void)enumerateSubstringsInRange:(NSRange)range
                           options:(NSStringEnumerationOptions)opts
                        usingBlock:(void (^)(NSString *substring,
                                             NSRange substringRange,
                                             NSRange enclosingRange,
                                             BOOL *stop))block


// 字符串指定区域段替换
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target
                                        withString:(NSString *)replacement
                                           options:(NSStringCompareOptions)options
                                             range:(NSRange)searchRange
// 指定区域段字符串替换
- (NSString *)stringByReplacingCharactersInRange:(NSRange)range
                                      withString:(NSString *)replacement


// 返回指定开始索引到结束索引,指定段的字符串
- (void)getLineStart:(NSUInteger *)startIndex
                 end:(NSUInteger *)lineEndIndex
         contentsEnd:(NSUInteger *)contentsEndIndex
            forRange:(NSRange)aRange


// 返回字符串指定段的位置和长度
- (NSRange)lineRangeForRange:(NSRange)aRange


// 指定段分段取字符串
- (void)getParagraphStart:(NSUInteger *)startIndex
                      end:(NSUInteger *)endIndex
              contentsEnd:(NSUInteger *)contentsEndIndex
                 forRange:(NSRange)aRange


// 指定段分段的位置和长度
- (NSRange)paragraphRangeForRange:(NSRange)aRange


// 以字符串的字符编码指定索引查找位置
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)anIndex


// 以字符串的字符编码指定区域段查找位置
- (NSRange)rangeOfComposedCharacterSequencesForRange:(NSRange)range


// 字符串转化为属性列表
- (id)propertyList


// 字符串转化为字典
- (NSDictionary *)propertyListFromStringsFileFormat


// 字符串绘制
- (void)drawAtPoint:(CGPoint)point
     withAttributes:(NSDictionary<NSString *,
                             id> *)attrs
- (void)drawInRect:(CGRect)rect
    withAttributes:(NSDictionary<NSString *,
                            id> *)attrs
- (void)drawWithRect:(CGRect)rect
             options:(NSStringDrawingOptions)options
          attributes:(NSDictionary<NSString *,
                              id> *)attributes
             context:(NSStringDrawingContext *)context


// 本地化字符串折叠
- (NSString *)stringByFoldingWithOptions:(NSStringCompareOptions)options
                                  locale:(NSLocale *)locale


// 返回公共前缀字符串
- (NSString *)commonPrefixWithString:(NSString *)aString
                             options:(NSStringCompareOptions)mask


// 所有单词首字母转化大写
@property(readonly, copy) NSString *capitalizedString


//Unicode范式D标准化
@property(readonly, copy) NSString *decomposedStringWithCanonicalMapping
//Unicode范式KD标准化
@property(readonly, copy) NSString *decomposedStringWithCompatibilityMapping
//Unicode范式C标准化
@property(readonly, copy) NSString *precomposedStringWithCanonicalMapping
//Unicode范式KC标准化
@property(readonly, copy) NSString *precomposedStringWithCompatibilityMapping




// 当前编码值
+ (const NSStringEncoding *)availableStringEncodings


// 默认C字符串编码
+ (NSStringEncoding)defaultCStringEncoding


// 对一份data数据进行转换为字符串,有可选option字典,另外还有是否允许有损失,最终转换之后返回一个编码种类。下面是7种不同option字典选项
+ (NSStringEncoding)stringEncodingForData:(NSData *)data
                          encodingOptions:(NSDictionary<NSString *,  id> *)opts
                          convertedString:(NSString * _Nullable *)string
                      usedLossyConversion:(BOOL *)usedLossyConversion


// 编码的名称
+ (NSString *)localizedNameOfStringEncoding:(NSStringEncoding)encoding


// 判断是否可以无损转化编码
- (BOOL)canBeConvertedToEncoding:(NSStringEncoding)encoding


// 返回指定编码的NSData对象
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding


// 返回指定编码的NSData对象,可以选择无损转化
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
         allowLossyConversion:(BOOL)flag


// 字符串最快编码值
@property(readonly) NSStringEncoding fastestEncoding


// 字符串最小编码值
@property(readonly) NSStringEncoding smallestEncoding


// 将数组中的字符串组合成一个文件路径  
+ (NSString *)pathWithComponents:(NSArray<NSString *> *)components


// 将一个路径分割成一个数组  
@property(readonly, copy) NSArray <NSString *> *pathComponents


- (NSUInteger)completePathIntoString:(NSString * _Nonnull *)outputName
                       caseSensitive:(BOOL)flag
                    matchesIntoArray:(NSArray<NSString *> * _Nonnull *)outputArray
                         filterTypes:(NSArray<NSString *> *)filterTypes




// 将这个字符串转换成文件系统的规范形式然后用 UTF-8 编码
@property(readonly) const char *fileSystemRepresentation


//扩展路径  
@property(getter=isAbsolutePath, readonly) BOOL absolutePath


// 路径的最后一部分
@property(readonly, copy) NSString *lastPathComponent


// 从路径最后一个组成部分中提取扩展名
@property(readonly, copy) NSString *pathExtension


// 把当前用户的主目录替换为波浪号
/User/mike/textFile.txt   ----->    ~/textFile.txt
@property(readonly, copy) NSString *stringByAbbreviatingWithTildeInPath


// 将String添加到现有路径末尾 
- (NSString *)stringByAppendingPathComponent:(NSString *)aString


// 给当前路径添加扩展名
- (NSString *)stringByAppendingPathExtension:(NSString *)ext


// 删除路径的最后一部分后的字符串
@property(readonly, copy) NSString *stringByDeletingLastPathComponent


// 删除路径扩展名后的字符串
@property(readonly, copy) NSString *stringByDeletingPathExtension


// 把波浪号替换为当前用户的主目录
~/textFile.txt   ----->    /User/mike/textFile.txt
@property(readonly, copy) NSString *stringByExpandingTildeInPath


// 将路径中的代字符扩展成用户主目录(~)或指定用户的主目录(~user) 
@property(readonly, copy) NSString *stringByResolvingSymlinksInPath


// 尝试解析路径中的符号链接 
@property(readonly, copy) NSString *stringByStandardizingPath


// 返回添加指定路径数组后的路径数组
- (NSArray<NSString *> *)stringsByAppendingPaths:(NSArray<NSString *> *)paths


// Percent-Encoding
- (NSString *)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet *)allowedCharacters


// 去掉Percent-Encoding后的字符串
@property(readonly, copy) NSString *stringByRemovingPercentEncoding


// 分析句中单词的词性
- (void)enumerateLinguisticTagsInRange:(NSRange)range
                                scheme:(NSString *)tagScheme
                               options:(NSLinguisticTaggerOptions)opts
                           orthography:(NSOrthography *)orthography
                            usingBlock:(void (^)(NSString *tag,
                                                 NSRange tokenRange,
                                                 NSRange sentenceRange,
                                                 BOOL *stop))block
- (NSArray<NSString *> *)linguisticTagsInRange:(NSRange)range
                                        scheme:(NSString *)tagScheme
                                       options:(NSLinguisticTaggerOptions)opts
                                   orthography:(NSOrthography *)orthography
                                   tokenRanges:(NSArray<NSValue *> * _Nullable *)tokenRanges
0 0
原创粉丝点击