NSString 和 NSMutableString

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSString 和 NSMutableString相关的知识,希望对你有一定的参考价值。

//

//  main.m

//  字符串(NSString&NSMutableString)

//

//  Created by 闫合 on 16/5/19.

//  Copyright © 2016年 闫合. All rights reserved.

//

#pragma mark NSString 和 NSMutableString

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //初始化(工厂行为、对象初始化)

        //行为

        //Foundation框架下有两个字符串的类

        //NSString静态类  NSMutableSting动态类

//        NSString *str = @"123";

        //类的行为

#pragma mark 通过c字符串来构建一个OC字符串

        //可以通过c字符串来构建一个OC字符串

       /* char *cstr = "你好!";

        NSString *str1 = [NSString stringWithCharacters:cstr length:strlen(cstr)];

        NSLog(@"%@",str1);*/

      /*  NSString *str = [NSString stringWithFormat:@"%d",123];//把数值转换为字符串“123”

        NSLog(@"%@",str);

        NSString *str1 = [NSString stringWithString:@"ASD"]; //@"ASD";

        NSLog(@"%@",str1);

        NSString *str2 = [NSString stringWithUTF8String:"中国"];

        NSLog(@"%@",str2);*/

       /* NSString *str = [[NSString alloc]initWithFormat:@"%d",123];

        NSLog(@"%@",str);

        NSString *str1 = [[NSString alloc]initWithString:@"123"];

        NSLog(@"%@",str1);*/

#pragma mark 对字符串进行大小写处理

        /* //对字符串进行大小写处理

        NSString *str = @"abc";

        NSLog(@"%@",str);

        str = [str uppercaseString];//小写字母转大写

        NSLog(@"%@",str);

        NSString *str1 = @"aBc";

        NSLog(@"%@",str1);

        str1 = [str1 lowercaseString];//大写字母转小写

        NSLog(@"%@",str1);*/

#pragma mark 判断字符串长度

        /* //判断字符串长度

        NSString *str = @"123456789";

        NSLog(@"%lu",[str length]);//9

        

        NSString *str1 = @"和123";

        NSLog(@"%lu",[str1 lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);//在OC里一个汉字占三个字节*/

#pragma mark 判断字符串中是否含有某个字符串

        /*

        //判断字符串中是否有某个字符串

        NSString *str = @"12.3";

        NSRange range = [str rangeOfString:@"2."];

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

        if (range.location==NSNotFound)

        {

            NSLog(@"没有");

        }

        else

        {

            NSLog(@"有");

        }

        */

#pragma mark 字符串内容比较

        /*

        //字符串内容比较

        NSString *str = @"1234";

        if ([str isEqualToString:@"1234"])

        {

            NSLog(@"是");

        }else

        {

            NSLog(@"不是");

        }

         */

#pragma mark 字符串转数值

        /*//字符串转数值

        NSString *str = @"123";

        int s = [str intValue];//转整型

        NSLog(@"%d",s);

        

        double d = [str doubleValue];//转double

        NSLog(@"%.2f",d);

        */

#pragma mark 判断字符串是否以字符串开头或结尾

//        判断字符串是否以字符串开头或结尾

        /*

         //是不是以“”开头的

         NSString *str = @"12.3";

         BOOL b = [str hasPrefix:@"1"];

         if (b)

         {

         NSLog(@"是");

         }else

         {

         NSLog(@"不是");

         }

         //是不是以“”结尾的

         NSString *str1 = @"张三丰";

         BOOL b1 = [str1 hasSuffix:@"丰"];

         if (b1)

         {

         NSLog(@"是");

         }else

         {

         NSLog(@"不是");

         }

*/

#pragma mark 提取子字符串

        //提取子字符串

        /*NSString *str = @"我们是中国人????";

        NSString *str1 = [str substringFromIndex:6];//从哪个索引位置开始

        NSLog(@"str1=%@",str1);

        str1 = [str substringToIndex:1];

        NSLog(@"str1=%@",str1);//到哪个索引位置结束

        NSRange range = {0,2};

        str1 = [str substringWithRange:range];//截取某个范围的字符串

        NSLog(@"str1=%@",str1);

        NSString *str = @"123456";//逆序输出

        NSRange range = {0,1};

        for (long i=[str length]-1; i>=0; i--)

        {

            range.location = i;

            NSLog(@"%@",[str substringWithRange:range]);

        }

         */

#pragma mark 剔除字符串两端的空格stringByTrimmingCharactersInSet

        /*

        NSString *str = @"123";

        NSString *str1 = @" 456";

        str1 = [str1 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];//剔除字符串两端的空格

         NSString *str2 = @"7";

        NSLog(@"%@%@%@",str,str1,str2);

         */

#pragma mark 写文件到磁盘writeToFile,再读取文件

/*

 //        NSString *str = @"123中国";

        

//      [str writeToFile:@"abc.txt" atomically:YES];//这种写文件的方法已经被弃用了,不推荐使用了

        //[str writeToFile:@"abc.txt" atomically:NO encoding:NSUTF8StringEncoding error:nil];

        NSString *str;

        NSError *error;

        str = [NSString stringWithContentsOfFile:@"abc.txt" encoding:NSUTF8StringEncoding error:&error];

            NSLog(@"%@",error);

 */

 

#pragma mark 字符串扩展stringByAppendingString

        /*

        //字符串扩展stringByAppendingString

        NSString *str = @"中国";

        //str = [NSString stringWithFormat:@"%@%@",str,@"崛起"];

       str = [str stringByAppendingString:@"崛起!"];

        NSLog(@"%@",str);

        */

#pragma mark NSMutableSting动态类

        NSMutableString *str = [NSMutableString stringWithCapacity:100];//预留100个字符的空间

        NSLog(@"%@",str);//此时是空串

//        [str appendString:@"123"];//直接添加字符串"123"

        [str appendFormat:@"%d",123];//格式化的添加"123"

        NSRange r = {0,2};

        [str replaceCharactersInRange:r withString:@""];

    

         NSLog(@"%@",str);

        

        

            return 0;

    }

}

 


以上是关于NSString 和 NSMutableString的主要内容,如果未能解决你的问题,请参考以下文章

NSString 到 CFStringRef 和 CFStringRef 到 ARC 中的 NSString?

探讨NSString和NSMutableString的内存问题以及copy和MutableCopy两个方法

NSString 和 NSMutableString

NSString 和 UITapGestureRecognizer 作为方法参数

NSString跟SwiftString的区别和使用场景

NSString 和NSInteger的相互转换