Object C学习笔记9-字符串NSMutableString

 

  NSMutableString类继承自NSString,所以在NSString中的方法在NSMutableString都可以使用. NSMutableString和NSString的区别在于NSMutableString是动态的字符串,可以动态的添加,修改,删除等。在前面提到了就和.NET中的string和StringBuilder的区别一样。

 

  1. 添加字符串

  向字符串末尾添加字符串可以使用appendString方法和appendFormat方法。appendString方法主要用于向字符串末尾添加一个字符串;appendFormat 方法用于向字符串末尾添加多种类型的字符串,相当于.NET中的appendFormat 方法使用占位符。

NSMutableString *str=[[NSMutableString alloc] init];
        [str appendString:@"NSMutableString 字符串"];
        NSLog(@"appendString=%@",str);

        [str appendFormat:@"  --我的名字:%@ , 年龄 %d",@"Object C",10];
        NSLog(@"appendFormat: %@",str);

测试例子

  测试效果如下:

2014-02-15 12:30:21.476 ObjectC10[1233:303] appendString=NSMutableString 字符串
2014-02-15 12:30:21.478 ObjectC10[1233:303] appendFormat: NSMutableString 字符串  --我的名字:Object C , 年龄 10

测试结果

 

  2. 删除字符串

  在NSMutableString中使用stringWithString方法来初始化字符串;

  使用rangeOfString获取某个字符串在原字符串的位置以及长度;

  使用deleteCharactersInRange方法删除特定位置的字符串

NSMutableString *str=[NSMutableString stringWithString:@"Object C 之NSMutableString类"];
        NSLog(@"stringWithString= %@ ",str);

        NSRange range= [str rangeOfString:@"Mutable"];
        NSLog(@"Location=%d",range.location);
        NSLog(@"length=%d",range.length);

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

测试例子

  测试效果如下:

2014-02-15 12:45:34.078 ObjectC10[1272:303] stringWithString= Object C 之NSMutableString类
2014-02-15 12:45:34.080 ObjectC10[1272:303] Location=12
2014-02-15 12:45:34.080 ObjectC10[1272:303] length=7
2014-02-15 12:45:34.080 ObjectC10[1272:303] deleteCharactersInRange=Object C 之NSString类

测试结果

 

  3. 插入字符串

  在NSMutableString中在某个字符串特定位置添加一个字符串使用insertString方法;

NSMutableString *str=[NSMutableString stringWithString:@"Obejct C"];
        NSLog(@"%@",str);
        NSString *str2=@"学习";
        [str insertString:str2 atIndex:6];
        NSLog(@"insertString= %@",str);

测试例子

  测试效果如下:

2014-02-15 12:53:14.517 ObjectC10[1294:303] Obejct C
2014-02-15 12:53:14.519 ObjectC10[1294:303] insertString= Obejct学习 C

测试结果

 

  4.字符串拷贝

  因为NSMutableString是引用类型,也就是指针类型,当一个变量赋值给另外一个变量的时候,两者其实是指向的同一个地址。

//创建字符串
        NSMutableString *str1 = [NSMutableString stringWithString: @"字符串1"];
        NSMutableString *str2;

        //字符串赋值
        str2 = str1;

        [str2 appendString: @" 和字符串2"];

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

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

测试例子

  测试效果如下:

2014-02-15 12:55:33.667 ObjectC10[1308:303] str1 = 字符串1 和字符串2
2014-02-15 12:55:33.683 ObjectC10[1308:303] str2 = 字符串1 和字符串2

测试结果

 

  5. 字符串类型转换

  intValue用于将字符串类型转换为int 类型

  integerValue用于将字符串类型转换为NSInteger 类型

  floatValue用于将字符串类型转换为float类型

  doubleValue用于将字符串类型转换为double类型

NSString *str1=@"123";
        int value1=[str1 intValue];
        NSLog(@"转化为int类型: str1=%d",value1);

        NSString *str2=@"1234";
        NSInteger value2=[str2 integerValue];
        NSLog(@"转化为NSInteger类型: str2=%i",value2);

        NSString *str3=@"3.1415";
        float value3=[str3 floatValue];
        NSLog(@"转换为float类型: str3=%0.4f",value3);

        double value4=[str3 floatValue];
        NSLog(@"转换为double类型: str3=%0.4f",value4);

测试例子

  测试效果如下:

2014-02-15 13:07:00.070 ObjectC10[1378:303] 转化为int类型: str1=123
2014-02-15 13:07:00.094 ObjectC10[1378:303] 转化为NSInteger类型: str2=1234
2014-02-15 13:07:00.094 ObjectC10[1378:303] 转换为float类型: str3=3.1415
2014-02-15 13:07:00.095 ObjectC10[1378:303] 转换为double类型: str3=3.1415

测试结果

  如果字符串格式有问题,则转换的时候会报异常。

时间: 2024-10-24 11:53:54

Object C学习笔记9-字符串NSMutableString的相关文章

Object C学习笔记17-动态判断和选择器

当时学习Object C的时被人鄙视了一顿,说使用.NET的思想来学Object C就是狗屎:不过也挺感谢这位仁兄的,这让我学习的时候更加的谨慎.今天的学习笔记主要记录Object C中的动态类型相关内容. 首先还是和.NET先对比一下,.NET中存在一个关键字var ,这个估计用过.NET的都知道,除非没有接触过3.0以上版本的.在.NET中能够使用var来声明任何类型的局部变量,负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量.但是这里要注意的时var 并不是一

Object C学习笔记10-静态方法和静态属性

在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此.在Object C中也存在static关键字,今天的学习过程使用到了这个关键字,在这里记录一下static的使用. 在Object C的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中 .不过可以调用这个类的方法间接的修改这个静态变量的值.对于Object C中的类使用和定义在前面已经做过相应

Object C学习笔记21-typedef用法

在上一章的学习过程中遇到了一个关键字typedef,这个关键字是C语言中的关键字,因为Object C是C的扩展同样也是支持typedef的. 一. 基本作用 typedef是C中的关键字,它的主要作用是给一个数据类型定义一个新的名称,这些类型报告内部数据类型,比如int,char 还有自定义类型struct,enum等. typedef一般有两个作用:(1) 给某种类型顶一个定义比较容易记的名字,相当于别名;(2)简化较为复杂的类型声明.   二. typedef的使用 1. 定义新类型 语法

Object C学习笔记15-协议(protocol)

在.NET中有接口的概念,接口主要用于定义规范,定义一个接口关键字使用interface.而在Object C 中@interface是用于定义一个类的,这个和.NET中有点差别.在Object C中有一个协议(protocol) 的概念,这个和.NET中的interface类似. 协议(Protocol) 在列出的方法在本类中并没有相应实现,而是别的类来实现这些方法,而定义协议必须使用protocol关键字.   一. 如何定义protocol的定义 如何使用XCode新建一个协议.h 文件

Object C学习笔记8-字符串NSString之二

5. 字符串是否包含 hasPrefix 判断字符串是否以某个字符串开头 hasSuffix 判断字符串是否以某个字符串结尾 NSString *str1=@"Object C学习正在进行中.... LOVE"; if([str1 hasPrefix:@"Object"]){ NSLog(@"字符串:%@是以%@开头",str1,@"Object"); } if([str1 hasSuffix:@"LOVE"

Object C学习笔记7-字符串NSString之一

在Object C中存在两个类用于操作字符串,NSString和NSMutableString;NSString在赋值之后不能修改其内容和长度,而NSMutableString可以动态的修改字符串内容和长度,其主要区别就和.NET 中的string与StringBuilder之间的区别. 1. 定义NSString字符串 在Object C中NSString是一个对象类型,其有多种定义方式: NSString *str1=@"令狐聪"; NSString *str2=[NSString

Object C学习笔记23-继承,重写,重载

前面的学习都一直在使用Object C对象,但是没有具体总结过Object C中的对象使用特性,这里简单总结一下. 一.  继承 在面向对象编程中,子类可以通过继承得到父类的可以继承的的属性和方法,在Object C中也同样如此. 先定义一个Person类,并且定义几个属性和一个方法: #import <Foundation/Foundation.h> @interface Person : NSObject{ NSString *name; int age; NSArray *itmes;

Object C学习笔记11-数组

  在Object C也提供了类似C#中的Array数组对象,在Object C中使用NSArray 来创建数组:但是在Object C中NSArray 只能存放对象类型的指针,不能存放int,char,double等基本数据类型. 一. 不可变数组对象 这个和之前的NSString有些类似,NSArray 能够创建不可变的数组对象.一旦初始化这个对象就不能动态的修改和增加这个数组. (1)使用arrayWithObjects来初始化数组内容,参考如下代码: NSArray *items=[NS

Javascript Object 对象学习笔记_基础知识

构造函数new Object() new Object(value) 参数value     可选的参数,声明了要转换成Number对象.Boolean对象或String对象的原始值(即数字.布尔值或字符串).JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象. 返回值 如果没有给构造函数传递value参数,那么它将返回一个 新创建的Object实例.如果指定了原始的value参数,构造函数将创建并返回原始值的包装对象,即Number对象.Boolean对象或 Str