iOS学习笔记---oc语言第四天

字符串 数组

一、使用苹果帮助文档

学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能

Inherits from 继承⾃自

    Conforms to 遵循什么协议

    Framework 属于哪个框架

    Availability 什么时候可⽤用的

    Declared in 声明在什么头文件⾥里

    Related documents 相关文档

    Sample code ⽰示例代码

快速打开帮助文档

在代码中,将⿏鼠标停留在 类名或者⽅法名上,option+⿏鼠标左键,点击

    Reference的超链接进⼊入帮助⽂文档。

也可使用command+⿏鼠标左键,进⼊头⽂文件,查看类的接口部分。

二、字符串

Foudation框架是cocoa编程,iOS编程的基础框架,包括:字符 串、集合、⽇期、时间等基础类。

NSString和NSMutableString,即不可变字符串和可变字符串

c语言中,字符串是由char字符数组组成

oc中,字符串类是由unichar(多字节字符)组成,功能很强大。

NSString

不可变字符串类。 NSString对象创建以后,内容和⻓度不能更改

常用方法

创建⼀个新的字符串,可以使⽤实例方法和便利构造器。

    获取字符串长度。

    判断字符串的是否以指定字符串开始或结束。

    搜索字符串范围。

    字符串截取(获取子字符串)。

    拼接字符串。

    替换字符串。

    字符串⽐比较。

    字符串和数值类型转换。

    ⼤小写转换操作。

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
/*
    NSString *str1 = @"张三";
    NSString *str2 = [[NSString alloc] initWithFormat:@"hi,%@ ,%d岁",str1,29];
//    NSUInteger length = [str1 length];
    NSLog(@"%lu",[str2 length]);
    NSString *str3 = [NSString stringWithFormat:@"hai %@, %d",str1,29];
    NSLog(@"%@",str3);
    
    NSLog(@"%d",[str2 hasPrefix:@"hi"]);//判断字符串以xxx字符为前缀
    NSLog(@"%d",[str2 hasSuffix:@"岁"]);//判断字符串以xxx字符为结尾
    NSRange range = [str2 rangeOfString:@"三"];
    NSLog(@"%lu %lu",range.location,range.length);
    NSLog(@"%@",[str2 substringFromIndex:5]);//截取字符串
    NSLog(@"%@",[str2 substringToIndex:5]);
    NSRange r ={3,3};
    NSLog(@"%@",[str2 substringWithRange:r]);//从哪里截取,截取多长字符串
    NSLog(@"%@",[str1 stringByAppendingString:str2]);//字符串拼接
    NSLog(@"%@",[str1 stringByAppendingFormat:@"---%@",str2]);//字符串格式化拼接
    NSLog(@"%@",[str1 stringByReplacingOccurrencesOfString:@"三" withString:@"789456"]);//字符串替换
    NSString *str4 = @"文艺青年";
    NSString *str5 = [str4 stringByReplacingOccurrencesOfString:@"文艺" withString:@"2B"];
    NSLog(@"%@",str5);
 //输出
// 2014-06-26 17:03:16.424 LessonString[1358:303] 10
// 2014-06-26 17:03:16.426 LessonString[1358:303] hai 张三, 29
// 2014-06-26 17:03:16.426 LessonString[1358:303] 1
// 2014-06-26 17:03:16.426 LessonString[1358:303] 1
// 2014-06-26 17:03:16.427 LessonString[1358:303] 4 1
// 2014-06-26 17:03:16.427 LessonString[1358:303]  ,29岁
// 2014-06-26 17:03:16.427 LessonString[1358:303] hi,张三
// 2014-06-26 17:03:16.428 LessonString[1358:303] 张三
// 2014-06-26 17:03:16.428 LessonString[1358:303] 张三hi,张三 ,29岁
// 2014-06-26 17:03:16.429 LessonString[1358:303] 张三---hi,张三 ,29岁
// 2014-06-26 17:03:16.429 LessonString[1358:303] 张789456
// 2014-06-26 17:03:16.429 LessonString[1358:303] 2B青年
*/
   /*
    NSString *str11 = @"lanoukeji";
    NSString *str12 = [NSString stringWithFormat:@"lanoukeji"];
    if ([str11 isEqualToString:str12]) {
        NSLog(@"str11 和str12 一样");
    }else{
        NSLog(@"different");
    }//比较字符串是否相等
    NSString *str13 = @"123";
    int a = [str13 intValue];
    NSLog(@"%d",a);
    
    NSString *str14 = @"ni hao";
    NSLog(@"%@",[str14 capitalizedString]);//首字母大写
    return 0;
    //输出
//    2014-06-26 17:02:05.826 LessonString[1347:303] str11 和str12 一样
//    2014-06-26 17:02:05.827 LessonString[1347:303] 123
//    2014-06-26 17:02:05.828 LessonString[1347:303] Ni Hao
    
    */

NSMutableString

可变字符串类。

 NSString 类的子类,该类创建的字符串是一个动态的可变的字符 串,可以支持增删改查等动态的操作。

NSMutableString是NSString的⼦子类,继承得到所有⽅方法。

    不可变字符串的修改操作,本质就是得到一个新的字符串。

    不可变字符串的修改方法以string开头,有返回值。

    可变字符串的修改方法没有返回值,修改原字符串

字符串NSString

创建 initWithFormat  或者 stringWithFormat
//1.求字符串长度
//- length
//2.判断字符串是否相等
// - isEqualToString
//3.字符串替换
//- stringByReplacingOccurrenceOfString:WithString;
//4.字符串拼接
//- stringByAppendingFormat;
//5.字符串比较
//- compare;
//6.求子串
//- substringFromIndex;
//7.查询字符串
//- rangeOfString;
//8.前缀  后缀
//- hasPrefix;
//- hasSuffix;
//9.字符大写
//- uppercaseString
 
可变字符串NSMutableString
创建  使用父类继承的方法或者使用自己的创建方法
//- initWithCapacity;
//- appendFormat;
//- insertString:atIndex;
//- deleteCharactersInRange;
//- replaceCharactersInRange:withString;
 
 
 
不可变数组NSArray   只能存储对象(继承来自NSObject的类)
不能添加,不能删除,不能修改
创建数组
//-initWithObjects;
//查找 - objectAtIndex:
//个数 -count
 
可变数组NSMutableArray
//最后增加 -addObject:
//插入   -insertObject:atIndex:
//移除   -removeObjectAtIndex:      //移除所有的  removeAllObjects
//替换  -replaceObjectAtIndex:withObject
原文地址:https://www.cnblogs.com/limicheng/p/3809511.html