美文网首页
NSString相关处理

NSString相关处理

作者: 4陈雨泽4 | 来源:发表于2016-04-27 11:15 被阅读307次

    --实例化方法--------------

    NSString *str = [[NSString alloc] init];

    注意:在NSString 中存在自己的实例化和初始化的方法 例如:

    NSString *str1 = [NSString stringWithCString:"new String" enconding: NSACIIStringEncoding];

    NSString *str2 = [NSString alloc] initWithCString:"new String" enconding: NSACIIStringEncoding];

    str1和str2两个对象是相同的。

    --NSStringEncoding 中常用的字符编码----------------

    NSASCIIStringEncoding

    NSUTF8StringEncoding

    NSUnicodeStringEncoding

    --NSString创建实例----------------

    带“@”符号的方法只能定义含有英文和数字的NSString实例,例如:

    NSString *str = "Hello money~";

    --生成含有中文的NSString方法-------------

    //此方法自动释放内存

    + (id)stringWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;

    //进行alloc后进行初始化

    - (id)initWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;

    例如:

    NSString *string = [NSString stringWithCString:"您好" encoding:NSUTF8StringEncoding];

    NSString *string = [[NSString alloc] initWithCString:"您好" encoding:NSUTF8StringEncoding];

    --使用格式创建字符串-------------

    + (id)stringWithFormat:(NSString *)format...

    - (id)initWithFormat:(NSString *)format...

    例如:

    NSString *str = "hello";

    NSString *string = [NSString stringWithFormat:@"%@ world",str];

    NSLog(string); 结果:hello world

    --------------------------

    NSRange

    --NSRange的定义

    typedef struct _NSRange

    {

    unsigned int location;

    unsigned int length;

    }NSRange;

    NSMakeRange函数

    --这个函数比较特殊 返回一个NSRange的对象。

    NSMakeRanger(unsigned int location,unsigned int length);

    例如:

    NSRange range = NSMakeRanger(0,5);

    NSLog(@"location is %d,length is %d",range.location,range.length);

    ---------------------------

    计算字符串长度

    - (unsigned int)length;

    ---------------------------

    字符串连接,插入和删除

    1、连接

    - (NSString *)stringByAppendingString:(NSString *)string;

    - (NSString *)stringByAppendingFormat:(NSString *)format...;

    例如:

    NSString *str1 = @"hello";

    NSString *str2 = @"world";

    NSString *str3 = [str1 stringByAppendingString:str2];

    NSString *str4 = [str2 stringByAppendingFormat:@"%d...%d",10,20];

    str4 --> world 10...20

    -----------------

    NSMutableString的生成

    NSString   + (id)string;  //生成空字符串的实例

    + (id)stringWithString:(NSString *)string;     //带自动释放内存

    - (id)initWithString:(NSString *)string;

    例如:

    NSMutableString *string = [NSMutableString stringWithString:@"hello"];

    2、追加字符串

    NSMutableString

    + (void)appendString:(NSString *)string;

    - (void)appendFormat:(NSString *)format...;

    例如:

    NSMutableString string = [NSMutableString string];

    [string appendString:@"hello"];

    [string appendString:@"money"];

    [string appendString:@" and world"];

    3、插入字符串

    NSMutableString

    + (void)insertString:(NSString *)string atIndex:(unsigned)index;

    从index位置插入字符串

    例如:

    NSMutableString *string = [NSMutableString stringWithString:@"Mac X"];

    [string insertString:@"OS" atIndex:4];

    string --> Mac OS X

    4、删除字符串

    NSMutableString

    + (void)deleteCharactersInRange:(NSRange)range;

    例如:

    NSMutableString *string = [NSMutableString stringWithString:@"Mac os"];

    [string deleteCharactersInRange:NSMakeRanger(0,1)];

    NSLog(string);

    string -->ac os;

    5、字符串比较

    NSString

    - (BOOL)isEqualToString:(NSString *)string;

    6、比较前置串和后置串

    NSString

    - (BOOL)hasPrefix:(NSString *)string;

    - (BOOL)hasSuffix:(NSString *)string;

    例如:

    NSString *str1 = @"Mac OS";

    NSString *str2 = @"Mac Pro";

    BOOL flag;

    flag = [str1 hasPrefix:@"Mac"];  YES

    flag = [str2 hasSuffix:@"OS"];      NO

    7、字符串检索

    NSString

    //如果找到就返回范围,否则NSRange的location项被设置为NSNotFound

    - (NSRange)rangeOfString:(NSString *)subString;

    - (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask;

    - (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask      range:(NSRange)range;

    -----mask常用选项列表

    NSCaseInsensitiveSearch          不区分字母大小写

    NSLiteralSearch          对字符串进行字节单位的比较,一般可提高检索速度

    NSBackwardsSearch     从范围的末尾开始检索

    NSAnchoredSearch     仅检索制定范围的前部。忽略字符串中间的检索字符

    例如:

    NSString *string = @"hello world";

    NSRange range = [string rangeOfString:@"he"];

    if(range.location != NSNotFound)

    {

    NSLog(@" location=%d,length=%d",range.location,range.length);

    }

    8、截取字符串

    NSString

    - (NSString *)substringToIndex:(unsigned)index;     //返回字符串开头至index位的字符串 不包含索引位

    - (NSString *)substringFromIndex:(unsigned)index; //返回字符串第index位至末尾的字符串 包含索引位

    - (NSString *)substringWithRange:(NSRange)range;     //返回字符串中范围range内的字符串 包含索引位

    例如:

    NSString *string = [string substringWithRange:NSMakeRange(5,2)];

    9、读取文本文件

    NSString

    + (id)stringWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error     //自动释放内存

    - (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error

    例如:

    NSString *string = [NSString stringWithContentsOfFile:@"/user/test/yw.txt" encoding:NSUTF8StringEncoding error:&error];

    if(string){}

    10、输出文本文件

    NSString

    - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error

    //参数 atomically 暂时将文件保存到辅助文件中

    //path

    The file to which to write the receiver. If path contains a tilde (~) character, you must expand it withstringByExpandingTildeInPath before invoking this method.

    ----下面是网上找的例子 感谢 @chenshizero

    //扩展路径

    NSString *Path = @"~/NSData.txt";

    NSString *absolutePath = [Path stringByExpandingTildeInPath];

    NSLog(@"absolutePath:%@",absolutePath);

    NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);

    //文件扩展名

    NSString *Path = @"~/NSData.txt";

    NSLog(@"Extension:%@",[Path pathExtension]);

    //根据range改变指定位置的文字的  颜色 !!!

    NSString *contentStr = @"简介:hello world";

    NSMutableAttributedString *str = [[NSMutableAttributedString alloc]initWithString:contentStr];

    //设置:在0-3个单位长度内的内容显示成红色

    [str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 3)];

    label.attributedText = str;

    相关文章

      网友评论

          本文标题:NSString相关处理

          本文链接:https://www.haomeiwen.com/subject/ifjcrttx.html