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

简介:   在Object C中存在两个类用于操作字符串,NSString和NSMutableString;NSString在赋值之后不能修改其内容和长度,而NSMutableString可以动态的修改字符串内容和长度,其主要区别就和.NET 中的string与StringBuilder之间的区别。

  在Object C中存在两个类用于操作字符串,NSString和NSMutableString;NSString在赋值之后不能修改其内容和长度,而NSMutableString可以动态的修改字符串内容和长度,其主要区别就和.NET 中的string与StringBuilder之间的区别。

  1. 定义NSString字符串

    在Object C中NSString是一个对象类型,其有多种定义方式:

NSString *str1=@"令狐聪";
        
        NSString *str2=[NSString stringWithFormat:@"名称: %@ 性别:%s 年龄: %d \n",str1,"",25];
        
        NSString *str3=[NSString stringWithFormat:@"我的姓名是 令狐聪"];
        
        NSString *str4=[NSString stringWithUTF8String:"我是任盈盈"];
        
        NSString *str5=[str4 stringByAppendingString:str3];
        
        NSString *str6=[str4 stringByAppendingFormat:@" %@",@"笑傲江湖abc"];
        
        NSLog(@"str1=%@",str1);
        NSLog(@"str2=%@",str2);
        NSLog(@"str3=%@",str3);
        NSLog(@"str4=%@",str4);
        NSLog(@"str5=%@",str5);
        NSLog(@"str6=%@",str6);
NSString字符串的定义

    因为NSString是对象类型,所以在定义的时候要使用 NSString *name 方式,而值需要使用 @+value方式,如@"NSString中文";

    也可以使用stringWithFormat全局方法,stringWithUTF8String,stringByAppendingString,stringByAppendingFormat等方法来定义,看到Format我们可以想到.NET中的Format()方法,用于格式化字符串。以上几个方法具体效果如下:

2014-02-13 20:53:13.247 ObjectC10[460:303] str1=令狐聪
2014-02-13 20:53:13.249 ObjectC10[460:303] str2=名称: 令狐聪 性别: 年龄: 25 
2014-02-13 20:53:13.251 ObjectC10[460:303] str3=我的姓名是 令狐聪
2014-02-13 20:53:13.252 ObjectC10[460:303] str4=我是任盈盈
2014-02-13 20:53:13.252 ObjectC10[460:303] str5=我是任盈盈我的姓名是 令狐聪
2014-02-13 20:53:13.253 ObjectC10[460:303] str6=我是任盈盈 笑傲江湖abc

 

  2.遍历字符串中的字符

    使用- (NSUInteger)length; 方法可以获得字符串的长度,这里要注意中文和英文的问题,在C中char表示一个字节,而一个中文字符占用两个字节位。

可以获得。

int count=[str6 length];
        NSLog(@"字符串长度:%d",count);
        for(int i=0;i<count;i++){
            NSString *abc=[str6 substringWithRange:NSMakeRange(i,1)];
            NSLog(@"%@",abc);
        }
        
        for(int i=0;i<count;i++){
            unichar c=[str6 characterAtIndex:i];
            NSLog(@"中文情况=%c",c);
        }
        
        for(int i=0;i<count;i++){
            unichar c=[str6 characterAtIndex:i];
            NSLog(@"中文情况=%C",c);
        }
遍历字符串字符

    第一种方式NSString *abc=[str6 substringWithRange:NSMakeRange(i,1)];

    第二种方式unichar c=[str6 characterAtIndex:i];

    这种需要注意中文的问题,第二种方式出现中文%c输出则为乱码,必须使用%C才能正确的输出中文。效果如下

2014-02-13 20:53:13.253 ObjectC10[460:303] 字符串长度:13
2014-02-13 20:53:13.253 ObjectC10[460:303] 我
2014-02-13 20:53:13.254 ObjectC10[460:303] 是
2014-02-13 20:53:13.254 ObjectC10[460:303] 任
2014-02-13 20:53:13.255 ObjectC10[460:303] 盈
2014-02-13 20:53:13.255 ObjectC10[460:303] 盈
2014-02-13 20:53:13.255 ObjectC10[460:303]  
2014-02-13 20:53:13.256 ObjectC10[460:303] 笑
2014-02-13 20:53:13.256 ObjectC10[460:303] 傲
2014-02-13 20:53:13.257 ObjectC10[460:303] 江
2014-02-13 20:53:13.257 ObjectC10[460:303] 湖
2014-02-13 20:53:13.258 ObjectC10[460:303] a
2014-02-13 20:53:13.258 ObjectC10[460:303] b
2014-02-13 20:53:13.258 ObjectC10[460:303] c
2014-02-13 20:53:13.259 ObjectC10[460:303] 中文情况=
相关文章
|
1月前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
1月前
|
Java 数据库
Java【问题记录 04】时间戳类型字符串{Timestamp@15601}2021-07-14 18:56:53.0变成带T的Object类型2021-07-14T10:56:53.000+0000
Java【问题记录 04】时间戳类型字符串{Timestamp@15601}2021-07-14 18:56:53.0变成带T的Object类型2021-07-14T10:56:53.000+0000
27 0
|
10月前
|
JavaScript
ES6对String字符串、Array数组、Number数字、Object对象 类型做了哪些升级优化
ES6对String字符串、Array数组、Number数字、Object对象 类型做了哪些升级优化
|
10月前
|
Java
Java 类对象(Object)内容(属性值)转字符串(toString)
Java 类对象(Object)内容(属性值)转字符串(toString)
148 0
java202303java学习笔记第二十五天-object之3
java202303java学习笔记第二十五天-object之3
29 0
java202303java学习笔记第二十五天-object之3
java202303java学习笔记第二十五天-object之1
java202303java学习笔记第二十五天-object之1
41 0
java202303java学习笔记第二十五天-object之3
java202303java学习笔记第二十五天-object之3
36 0
|
安全 Java 应用服务中间件
Distributed Object 2(三)|学习笔记
快速学习 Distributed Object 2(三)
110 0
Distributed Object 2(三)|学习笔记
|
前端开发 JavaScript Java
Distributed Object|学习笔记
快速学习 Distributed Object
98 0
Distributed Object|学习笔记
|
对象存储 开发者
对象存储 OSS 文件(Object)管理功能|学习笔记
快速学习对象存储 OSS 文件(Object)管理功能
411 0