nsstring - CSDN
  • objective-c之NSString

    千次阅读 2012-04-12 15:16:12
    NSString在前面已经说过是,是Cocoa中用来处理字符串的类。下面就是NSString的一些常用方法及操作:  创建字符串 NSString的stringWithFormat:方法就是通过格式字符串和参数创建NSString的: + (id) ...

    NSString在前面已经说过是,是Cocoa中用来处理字符串的类。下面就是NSString的一些常用方法及操作:

     创建字符串

    NSString的stringWithFormat:方法就是通过格式字符串和参数创建NSString的:

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

    你可以按下面的使用,如:

    NSString *height;

    Height = [NSString stringWithFormat:@"your heightis %d feet", 5];

    那得到的字符串是“yourheight is 5 feet”

    类方法

    前面看到了stringWithFormat的定义,不知注意到了没有,和我们以前声明一个方法有两个很大的区别:

    第一个是参数用“,...”来结尾,这是表示它可以接多个参数;

    第二个是方法前面不是“-”,而是“+”,这是什么意思呢?这是表示它是一个类方法,这个方法属于类对象(而不是实例对象)并且通常用于创建新的实例。这种用来创建新对象的类方法称为工厂方法

     

    获取大小

    NSString中的另一个实例方法是length,它返回的是字符串中的字符个数。

    - (unsigned int) length;

    可以这样使用它:

    unsigned int len = [height length];

     

    比较的策略

    isEqualToString:可以用来比较接收方和当作参数传递来的符号。它返回一个BOOL型数据来表示两个字符串的内容是否相同。声明如下:

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

    举例说明:

    NSString *string1 = @"hello 5";

    NSString *string2;

    string2 = [NSString stringWithFormat: @"hello%d",5];

    if([string1 isEqualToString:string2])

    {

        NSLog(@"They are same!");

    }

     

    compare:用来比较两个字符串,将接收对象和传递来的字符串进行比较,返回一个NSComparisonResult(就是一个enum型数据)来显示比较结果,声明如下:

    -(NSComparisonResult) compare:(NSString *) string;

    返回值的定义如下:

    typedef enum _NSComparisonResult{
         NSOrderedAscending = -1,    // <升序
         NSOrderedSame,              // =等于
         NSOrderedDescending  // >降序
    } NSComparisonResult;

    备注:如果比较两个字符串是否相等时,应该用isEqualToString,而不能仅仅只是比较字符串的指针值。另外compare判断的话只会根据第一个字符来进行判断,比如100与90,那就是升序,abcdef与dc比较,也是升序。

     

     不区分大小写的比较

    compare:也可以进行区分大小写的比较,它还有一种重载,多了一个option参数,用来给我们更多的选择与操作,方法具体定义如下:

    -(NSComparisonResult) compare:(NSString *) string

                          option:(unsigned)mask;

     

    options参数是一个位掩码,你可以使用位或运算符来添加选项标记,常用的选项如下:

    NSCaseInsensitiveSearch:不区分大小写字符。

    NSLiteralSearch:进行完全比较,区分大小写。

    NSNumericSearch:比较字符吕的字符个数,而不是字符值。

    例如:如果要进行字符串的比较,要忽略大小写但按字符个数的多少正确排序,那么应该如下使用:

    if([thing1compare:thing2

    option: NSCaseInsensitiveSearch

    | NSNumericSearch]

    == NSOrderedSame)

    {

        NSLog(@“they match!”);

    }

     

    如何判断字符串里面还包含其他字符串

    比如你要判断一个文件名里面是否包含“.avi”,这样可以判断是否可以用播放器打开它,再或者你想检查一个文件的开头是否包含了一个字符“my”,来判断它是否是你的文档。那么下面有两个方法来帮助进行判断:一个是检查字符串是否以另一个字符串进行开头,另一个是检查字符串是否以另一个字符串进行结尾:

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

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

    那么如何判断字符串中是否包含另一个字符串呢?还有另一个函数:

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

    返回的NSRange结构体,range.start为出现的第几个位置,range.length为要比较的字符串的长度,如果没有找到,则range.start则等于NSNotFound。


    可变的字符串

    NSString是不可变的,创建了之后就无法改变它,我们只能对它进行各种不影响其内容的操作,比如删除字符或者添加字符来改变它。所以Cocoa提供了一个NSString的子类,叫做NSMutableString,如果定义的字符串后面会发生改变,则使用这个子类。

    使用类方法stringWithCapacity:来创建一个新的NSMutableString,声明如下:

    - (id) stringWithCapacity: (unsigned) capacity:

    备注:capacity只是一个最优的容量,定义了这个大小后,并不是说仅限于这么大。

    NSMutableString *string;

    string = [NSMutableString stringWithCapacity: 42];

    NSMutableString常用的操作有如下:

    appendString:appendFormat:来附加新字符串,定义如下:

     - (void)appendString: (Nsstring *) aString;

     -  (void) appendFormat: (NSString *) Format;

    appendString 接受参数aString,然后将其复制到接受对象的末尾。

    appendFormat类似,他将格式化的字符串附加在接受对象的末尾,而不是创建新的对象。

    deleteCharacterInRange:用来删除字符串中的字符,定义如下:

    -(void)deleteCharactersInRange: (NSRange) range;

    通常将deleteCharactersInRange:和rangeOfString:连在一起使用,NSMutableString可以使用NSString的全部功能,包括rangeOfString:、字符串比较和其他任何功能。



    展开全文
  • NSString字符串截取三种方法

    万次阅读 2014-01-14 14:28:51
    1.定义一个字符串a, ... NSString *a = @"1.2.30";  int b= [[a substringWithRange:NSMakeRange(4,2)] intValue];   NSLog(@"a:%@ \n",a );  NSLog(@"b:%d",b );   O
    1.定义一个字符串a, 截取a 的某一个项目组,复制给b, b必须是int型
    

      NSString *a = @"1.2.30";

        int  b= [[a substringWithRange:NSMakeRange(4,2)] intValue]; 

      NSLog(@"a:%@  \n",a  );

      NSLog(@"b:%d",b  );

     

    Output : 2011-07-05 11:49:08.170 Q[4005:207]   a:1.2.30  

    2011-07-05 11:49:08.172 Q[4005:207]            b:30


    解析如下:substringWithRange: 专门截取字符串的一块肉 

               NSMakeRange(4,2)    从第4个字符开端截取,长度为2个字符,(字符串都是从第0个字符开端数的哦~!)

                 b = [a intValue]; 将 a 转换为 整数型

           b = [a floatValue];   将 a 转换为 小数型

           b = [a boolValue]; 将 a 转换为 布尔型(true /  false)

           b = [a integerValue]; 将 a 转换为 整数型

                b = [a longLongValue]; 将 a 转换为 长整型


    2。 字符串截取到第n位  (substringToIndex: n)(第n 位不算再内)

     

    - (void)viewDidLoad

    {

        NSString  *a = @"i like long dress";

      NSString *b = [a substringToIndex:4];

        NSLog(@"\n b: %@",b);

    }

     

    2011-07-11 18:12:40.119 Q[6321:207]      

    b: i li


    3。字符串从第n 位开端截取,直到最后 (substringFromIndex:n)(包含第 n 位)

     

    - (void)viewDidLoad

    {

        NSString  *a = @"i like long dress";

        NSString *b = [a substringFromIndex:4];

        NSLog(@"\n b: %@",b);

    }

     

    2011-07-11 18:15:08.125 Q[6366:207] 

     

     

     

     

    b: ke long dress

    展开全文
  • NSString 使用方法总结

    2017-09-09 11:51:40
    在 iOS 开发中 NSString 字符串对象是使用的最多的,总结一下方法 -(void) testNSString{ int i = 10; NSString *str = [NSString stringWithFormat:@"%d",i]; //字符串格式化 NSLog(@"%@",str); str = @...

    在 iOS 开发中 NSString 字符串对象是使用的最多的,总结一下方法

    -(void) testNSString{
        
        int i = 10;
        NSString *str = [NSString stringWithFormat:@"%d",i];  //字符串格式化
        NSLog(@"%@",str);
        
        str = @"sysprogram 2017";
        NSLog(@"%@",str);
        
        NSString *strRet = [str substringToIndex:7];//截取掉下标7之后的字符串
        NSLog(@"%@",strRet);
        
        strRet = [str substringFromIndex:2];        //截取掉下标2之前的字符串
        NSLog(@"%@",strRet);
        
        strRet = [str substringFromIndex:str.length- 2];   //只获取后面的两位字符串
        NSLog(@"%@",strRet);
        
        //设置截取字符串的范围,从第二位到第七位
        NSRange rang = NSMakeRange(2, 7);
        NSString * strRang = [str substringWithRange:rang];
        NSLog(@"rang = %@",strRang);
        
        strRet = [str capitalizedString];  //首字母大写
        NSLog(@"首字母大写:%@",strRet);
        
        strRet = [str uppercaseString];   //全部转为大写
        NSLog(@"全部大写:%@",strRet);
        
        strRet = [str lowercaseString];   //全部转为小写
        NSLog(@"全部小写:%@", strRet);
        
        strRet = [str stringByAppendingString:@"xxx"];   //字符串相加
        NSLog(@"%@",strRet);
        
        //查找字符串
        rang = [str rangeOfString:@"2017"];
        NSLog(@"查找的字符串 index 为 %lu", (unsigned long)rang.location);
        
        //将搜索中的字符串替换成为一个新的字符串
        strRet = [str stringByReplacingCharactersInRange:rang withString:@"1999"];
        NSLog(@"替换后字符串为%@", strRet);
        
        //将 2017 字符串替换成 1998
        strRet = [str stringByReplacingOccurrencesOfString:@"2017" withString:@"1998"];
        NSLog(@"替换后字符串为%@", strRet);
        
        //字符串比较区分大小写
        if ([str isEqualToString:@"sysprogram 2017"]) {
            
            NSLog(@"字符串完全相等");
        }
        //字符串开头比较
        if([str hasPrefix:@"sys"])
        {
            NSLog(@"字符串结尾为 sys");
        }
        //字符串结尾比较
        if([str hasSuffix:@"2017"])
        {
            NSLog(@"字符串结尾为 2017");
        }
    }
    

     还有更多的方法,待续......

    展开全文
  • NSString基本用法

    2015-08-02 15:42:07
    NSString *str = [[NSString alloc] init]; NSString *str = [[[NSString alloc] init] autorelease]; 注意:在NSString 中存在自己的实例化和初始化的方法 例如: NSString *str1 = [NSString stringWithCString:...

    –实例化方法————–
    NSString *str = [[NSString alloc] init];
    NSString *str = [[[NSString alloc] init] autorelease];

    注意:在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
    –常用的替换符————–
    %@ NSString实例
    %d,%D,%i 整数
    %u,%U 无符号整数
    %x 将无符号整数以十六进制小写字母显示
    %X 将无符号整数以十六进制大写字母显示
    %f 小数
    %c 字符
    %s C语言字符串
    %% 显示%字符本身


    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]); 
    
    展开全文
  • NSString用法总结

    2019-05-11 23:18:20
    写在开头 最近踩了多个string的坑,嗯嗯!还是要抽时间总结一下的,顺便在后面写几个自己写的或者学习别人的算法 1、NSString的创建 ...NSString * string_1 = [NSString string]; string...
  • iOS NSString常用方法

    千次阅读 2017-10-25 13:45:21
    NSString  --实例化方法--------------  NSString *str = [[NSString alloc] init];  NSString *str = [[[NSString alloc] init] autorelease];  注意:在NSString 中存在自己的实例化和初始化的方法 ...
  • NSString类详解

    千次阅读 2017-05-05 16:52:56
    说到字符串NSString肯定每个开发IOS的都用过,它是Foundation框架下的一个核心处理字符串的类,掌握它非常有用。 属性: 最直接的属性有length,字符串长度 2.字符串的获取 //截取指定位置之后的字符串 - (NSString *...
  • NSString *str1 = [NSString stringWithFormat:@"小强"]; NSString *str2 = [NSString stringWithFormat:@"1"]; NSString *str3 = [NSString stringWithFormat:@"a"]; NSString *str4...
  • iOS NSString详解

    2018-11-19 19:00:41
    一:__NSCFConstantString __NSCFString NSTaggedPointerString 二:weak修饰,字符串内存管理 三:NSTaggedPointerString讲解 四:面试题 ...OC中的NSString不论是在编译时还是在运行时都做了很多...
  • NSString 加密、 MD5

    2014-05-06 18:33:20
    原文地址:加密方法" style="text-decoration:none; color:rgb(82,102,115)">iphone开发-MD5 加密方法作者:shuai_yang ...- (NSString *)md5Digest:(NSString *)str{ const char *cStr =
  • NSString拼接字符串

    万次阅读 2012-05-02 09:57:41
    NSString* string; // 结果字符串 02 NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来 03   04 //...
  • NSString转换成UTF8编码的NSString

    万次阅读 2013-08-07 15:41:22
    在使用网络地址时,一般要先将url进行encode成UTF8格式的编码,否则在使用时可能报告网址不存在的错误,这时就需要进行转换 下面就是转换函数:  NSString *urlString=... NSString * encodedString = (NSString *)CF
  • 解决NSData转NSString返回nil的问题

    万次阅读 2014-11-09 02:17:43
    在使用initWithData等方法将NSData转换成NSString时,如果NSData的内容含有非encoding编码的字符,将会返回nil。 这个结果在很多时候可能并不是我们所希望的,比如在获取网页源码进行分析等方面,如果页面采用了utf-...
  • OC下NSString转ASCII.ASCII转NSString

    千次阅读 2018-06-23 16:49:16
    打个比方.我现在想把对应的0.1.2.3.4等转成A.B.C.D....//比如现在有一个NSString:@&quot;0&quot; NSString *str = @&quot;0&quot;; //1.转换成const char*类型.这里得出的是char*指针 ...
  • 前言:写这篇文章的初衷,是对阅读别人的博客提出的疑问,一路探索得来的。同时也要加强对内存管理以及... __weak NSString *str = [[NSString alloc] initWithFormat:@"1234"];  NSLog(@"%@", str);
  • 将 NSURL 转换为 NSString

    2018-10-30 23:53:00
    <p>Now in the case of the built-in app images I do get the file name as an <code>NSString</code> an save in the [occasion imagePath]</code>. But in the 2nd case where the user picks an image form the ...
  • self.orderCost.text = [NSString stringWithFormat:@"%.1f元",self.order.cost.floatValue]; %.1f 表示小数点一位,%.2f 表示小数点2位,依次类推. 格式定义 The format specifiers supported by the ...
  • ——-一、概述NSString是Foundation框架支持的一个类,用于创建和处理字符串对象。在OC语言中,创建一个常量字符串对象时,开头加@符号。本文中主要介绍如何在OC中创建一个NSSting字符串对象,并输出。介绍NSString...
  • iOS NSString的常用用法

    万次阅读 2012-06-17 11:14:48
    //1、创建常量字符串。 NSString *astring = @"This is a String!"; ...NSString *astring = [[NSString alloc] init]; astring = @"This is a String!"; [astring release]; N
  • 例如:获取2.5小时里面的2.5 ...NSString *originalString = @"2.5小时";  NSString *str = @"2.5小时";  NSArray *arrs = @[@".",@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9
1 2 3 4 5 ... 20
收藏数 237,217
精华内容 94,886
热门标签
关键字:

nsstring