Objective-C中字符串类

NSString,不可变字符串,即创建以后内容和长度不可修改.

NSMutableString,可变字符串,即创建以后内容还可以修改.

不可变字符串(NSString)

创建字符串

1 // 创建字符串
2 NSString *str1 = [[NSString alloc] initWithString:@"QQ"];
3 NSString *str2 = [NSString stringWithString:@"WeChat"];
4     // 字面量创建字符串
5     // 字面量也是语法糖 syntax sugar 简化字符串的创建过程
6 NSString *str3 = @"人人";
7 NSLog( @"%@", str3);

通常用字面量来创建字符串.

字符串的其他方法

 1 // 字符串长度
 2 NSLog(@"length: %lu", str3.length);
 3 // 取子串
 4 NSString *str4 = @"iPhone6Plus";
 5 // fromIndex 从当前下标处取到字符串结尾 包含当前下标
 6 NSString *str5 = [str4 substringFromIndex:4];
 7 NSLog(@"%@", str5);
 8 // toIndex 从字符串开头位置取到某个下标处结束 不包含当前下标
 9 NSString *str6 = [str4 substringToIndex:4];
10 NSLog(@"%@", str6);
11 // withRange
12 // 通过范围结构体取子串
13 NSString *str7 = [str4 substringWithRange:NSMakeRange(3, 4)];
14 NSLog(@"%@", str7);
15
16 // 拼接字符串 可以嵌套使用
17 NSString *str8 = [str4 stringByAppendingString:@"5288"];
18 NSLog( @"%@", str8);
19
20 // 替换字符串 可以嵌套使用
21 NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"6Plus" withString:@"7s"];
22 NSLog( @"%@", str9);
23
24 // 字符串相等判断
25 NSString *str10 = @"123";
26 NSString *str11 = @"123";
27 if (str10 == str11) {
28      NSLog(@"两个字符串对象的地址相同");
29    }
30 //    if ([str10 isEqualToString:str11]) {
31     NSLog(@"两个字符串对象的内容相同");
32     }
33
34 // 判断前缀和后缀
35     if ([str9 hasPrefix:@"i"]) {
36        NSLog(@"有前缀");
37     }
38     if ([str9 hasSuffix:@"88"]) {
39         NSLog(@"有后缀");
40     }
41     if ([str9 hasPrefix:@"iPhone7s5288"]) {
42         NSLog(@"有前缀");
43     }
44     if ([str9 hasSuffix:@"iPhone7s5288"]) {
45         NSLog(@"有后缀");
46     }
47
48 // 字符串比较
49 // ASC 升序 DESC 降序
50 NSString *str12 = @"iPhone6";
51 NSString *str13 = @"iPhone5s";
52 // 定义一个比较结果变量 用来存储字符串比较结果
53 NSComparisonResult result = [str12 compare:str13];
54 if (result == NSOrderedAscending) {
55        NSLog(@"升序");
56     } else if (result == NSOrderedDescending) {
57         NSLog(@"降序");
58     } else {
59         NSLog(@"相同");
60     }

万能转换公式

1 NSString *str14 = [NSString stringWithFormat:@"%@ lol %ld %f", str13, 100L, 3.1415];
2 NSLog(@"%@", str14);

可变字符串(NSMutableString)

    // 创建可变字符串
    NSMutableString *mstr = [NSMutableString string];

    // 可变字符串拼接
    [mstr appendString:@"iPhone"];
    // 插入
    [mstr insertString:@"Andriod" atIndex:2];
    NSLog( @"%@", mstr);

    // 删除
    [mstr deleteCharactersInRange:NSMakeRange(2, 7)];

    NSLog( @"%@", mstr);

    /*
     * 可变和不可变的区别
     * 不可变对象的操作 都是产生了新的对象 可变对象都是在原对象的基础上进行了操作
     */
时间: 2024-10-08 06:31:00

Objective-C中字符串类的相关文章

关于c++中字符串类的一些描述

1 string 类的使用,要包含头文件 #include <string> 2 两个string类可以相加,但不能相减 比如说:string s1,s2,s3; s1="asd"; s2="qw"; s3=s1+s2 则s3="asdqw" s3=s2+s1 则s3="qwasd"; 3 两个字符串还可以比较大小 可以用< > == 使用if语句对2个字符串类直接进行比较 规则是这样的,先比较第一个字

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

第十一课、Qt中的字符串类

一.历史遗留的问题及解决方案 1.遗留的问题 (1).C语言不支持真正意义上的字符串 (2).C语言用字符数组和一组函数实现字符串操作 (3).C语言不支持自定义类型,因此无法获得字符串类型 2.解决方案 (1).从c到c++进化过程中引入了自定义类型 (2).在c++中可以通过类来完成字符串的定义 3.标准库STL (1).STL是意义上需要与c++一同发布的标准库 (2).STL是一套以模板技术完成的c++类库 (3).STL包含了常用的算法和数据结构 (4).STL包含了字符串类 4.Qt

objective C中的字符串(三)

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7343561 objective C中的字符串操作 在OC中创建字符串时,一般不使用C的方法,因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方,在Cocoa中NSString集成的一些方法,可以很方便的操作字符串,下面举几个例子: 1.创建: 直接利用等号赋值 NSString *

objective C中的字符串

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7343561 objective C中的字符串操作 在OC中创建字符串时,一般不使用C的方法,因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方,在Cocoa中NSString集成的一些方法,可以很方便的操作字符串,下面举几个例子: 1.创建: 直接利用等号赋值 NSString *

一篇文章带你了解JavaScript中的基础算法之“字符串类”

作者 | Jeskson 来源 | 达达前端小酒馆 1 算法可以干什么呢?提高什么?有什么好处呢? 前端的同学需要提升编程核心内功,建立和健全算法知识体系,基础算法.数据结构.进阶算法,由浅入深讲解,透彻理解抽象算法,算法面试是关键一环,冲击大厂前端offer. 学习算法前掌握ES6哦!需要掌握单元测试的语言,Jest Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works wi

Python 的字符串类子串查找函数

Python 的字符串类有个很好用的函数,可很方便的用于与查找Python字符串类型对象子串相关的操作,具体的API如下: | find(...) | S.find(sub [,start [,end]]) -> int | | Return the lowest index in S where substring sub is found, | such that sub is contained within s[start:end]. Optional | arguments start

Sting 字符串类

一.字符串类String 字符串(string)是由字符构成的一个序列. 1. 构建一个字符串 //直接将字符串直接量看成String对象. String message = "Weclome to JAVA"; //使用字符数组 char[] charArray = { 'G', 'o', 'o', 'd', ' ', 'D', 'a', 'y'}; String message = new String(charArray); String变量存储的是对String对象的引用,St

Object-C中Category类体验

Object-C开发的时候有的时候会用到Category类,类似于Java和C#中扩展类,就是如果你觉得如果你觉得常用的方法在String中没有,可以根据业务需求和个人喜好写一个扩展类,然后在其中补充自己的方法,如果单纯的扩展已有类型来看基本上是一样的.OC还有可以对已经存在类通过Category进行扩展,这个特点又和C#中的partial class有的类似,先来看下是如何操作的吧: 新建的时候选择Object-C File: 选择类型为Category,第一个是是Categroy名称,第三个