OC学习----可变字符串

UITextField常用属性及设置 该文档详细列出UITextField常用以及不常用的相关属性及如何进行设置,对大家掌握UITextField的用法很有帮助。 立即下载

OC学习4

可变字符串学习
    /*
     开学 OC 中 Foundation 框架下的基础类
     */

    /* NSValue和NSNumber
        功能
     将 OC 和 C 语言当中的基本数据类型转换成实例对象,即将值类型转换成引用类型

     NSValue 为NSNumber的父类
     其中NSValue类可以将CGPoint,CGSize,CGRect,NSRange,NSEdgeInsets转换成对象

     其中NSNumber类可以将int,float,double,char,bool等 C 中的基本数据类型转换对象

     我们将 C 和 OC 中的基本数据类型(值类型)转换成对象(引用类型)的过程,叫做封装.相对应的,也有一个将对象转变成基本数据类型,此过程叫做拆包.

     字符串操作:
     1.字符串长度
     2.字符串的截取
     3.字符串比较
        "=="表示两个字符串的指针和内容都相同
        "xxx isEqualToString:yyy"表示两个字符串内容是否相同
     4.根据字符串拿到对应的range
     5.判断字符串中是否有XX前缀或XX后缀
     6.字符串拼接

     note:字符串操作的代码实现在下面.

     */

    //以下为基本数据类型
        int a = 5;
        float b = 4.5;
        double c = 3.14;
        char d = 'c';
        bool flag = YES;  
//      CGPoint point = {3,4};
//      CGSize size = {30,47};//宽和高
//      CGRect rect = {point,size}; 
    //以上注释的3种,通常不以这种方式来编写
        CGPoint point = CGPointMake(3, 4);
        CGSize size = CGSizeMake(30, 47);
        CGRect rect = CGRectMake(1, 2, 3, 4);
        NSRange range = NSMakeRange(3, 7);   
    //转换
        NSValue *pointValue = [NSValue valueWithPoint:point];
        NSValue *sizeValue = [NSValue valueWithSize:size];
        NSValue *rectValue = [NSValue valueWithRect:rect];
        NSValue *rangeValue = [NSValue valueWithRange:range];

        NSNumber *intNumber = [NSNumber numberWithInt:1];
        NSNumber *integerNumber = [NSNumber numberWithInteger:12];
        NSNumber *floatNumber = [NSNumber numberWithFloat:12.3];
        NSNumber *doubleNumber = [NSNumber numberWithDouble:12.45];
        NSNumber *charNumber = [NSNumber numberWithChar:'b'];
        NSNumber *boolNumber = [NSNumber numberWithBool:YES]; 
    //拆包
        CGPoint point1 = [pointValue pointValue];
        CGSize size1 = [sizeValue sizeValue];
        CGRect rect1 = [rectValue rectValue];
        NSRange range1 = [rangeValue rangeValue];

        int a1 = [intNumber intValue];
        NSInteger a2 = [integerNumber integerValue];
        float a3 = [floatNumber floatValue];
        double a4 = [doubleNumber doubleValue];
        char a5 = [charNumber charValue];
        bool a6 = [boolNumber boolValue];  
    //NSString 和 NSMutableString

    /*OC中的字符串具有强大的功能,即封装性极强,我们只需要找到对应API(API指的是功能,方法),就可以对字符串做相应的操作.OC中字符串分为不可亦字符串和可变字符串,其中可变字符串是不可变字符串的子类.
     在ios开发中,字符串通常用作显示文本,即作为UILable,UITextFeild等一些UIKit框架下控件的显示文本
     */

    /*
     NSString 不可变字符串
        1.快速初始化
   NSString *string1 = @"bokanwisdom"; 
        2.格式化的方式初始化
               NSString *string4 = [NSString stringWithFormat:@"%d",3]; 
        note:对于用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串拼接

        3.从本地文件中读取字符串
            NSString *string8 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

            NSString *string9 = [NSString stringWithContentsOfFile:path usedEncoding:&encoding error:&error];  
        4.从网络中读取一个字符串
            NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
            NSString *string10 = [NSString stringWithContentsOfURL:url encoding:4 error:&error];    
    //1.初始化一个字符串对象
        NSString *string1 = @"bokanwisdom";
        NSString *string2 = [NSString stringWithString:@"bokanwisdom"];
        NSString *string3 = [[NSString alloc] initWithString:@"bokanwisdom"];

        NSString *string4 = [NSString stringWithFormat:@"%d",3];//把整型数字3转换成字符串
        NSString *string5 = [NSString stringWithFormat:@"%dbokanwisdom",3];

        NSLog(@"string4 = %@",string5);  
    //对于用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串拼接
        NSString *string6 = @"XXX";
        NSString *string7 = @"bbb";
        NSString *newString = [NSString stringWithFormat:@"%@%@",string6,string7];
        NSLog(@"%@",newString);   
    //在本地文件中读取字符串,并且知道该文件的编码方式
        NSString *path = @"/Users/4001/Desktop/test.html";
        NSError *error;
        NSString *string8 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
        NSLog(@"%@",string8);
    //在本地文件中读取字符串,但不知道该文件的编码方式
        NSStringEncoding encoding;
        NSString *string9 = [NSString stringWithContentsOfFile:path usedEncoding:&encoding error:&error];
        NSLog(@"%@,%lu",string9,(unsigned long)encoding);  
    //从网络文件中读取字符串
        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
        NSString *string10 = [NSString stringWithContentsOfURL:url encoding:4 error:&error];
        NSLog(@"string10 = %@",string10);   
    //字符串的操作
          NSString *string11 = @"当女朋友说“随便”的时候,她的意思其实是:老娘懒得去想,也想不出好的,虽然是让你看着办,但你一定要想出我满意的才行";  
    //字符串截取
        NSString *subStr = [string11 substringToIndex:8];//从0开始到第8个
        NSLog(@"subStr = %@",subStr);
        NSString *subStr1 = [string11 substringFromIndex:8];//从第8个开始
        NSLog(@"subStr1 = %@",subStr1);
        NSString *subStr2 = [string11 substringWithRange:NSMakeRange(8, (string11.length) - 8)];//从第5个开始,截取10个字符
        NSLog(@"subStr2 = %@",subStr2);
    //字符串的属性 长度 length


    //字符串比较 如何判断两个字符串是否相等?
           if (subStr2 == subStr1) {
            //内容和指针都相等时,才成立
            NSLog(@"subStr1 和 subStr2 相等");
        }else{
            NSLog(@"subStr1 和 subStr2 不相等");
        }
    //在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等
            if ([subStr1 isEqualToString:subStr2]) {
            NSLog(@"subStr1 和 subStr2 相等");
        }else{
            NSLog(@"subStr1 和 subStr2 不相等");
        }
    //比较字符串大小
        NSString *string12 = @"yanshuxin";
        NSString *string13 = @"Hello";
        NSComparisonResult result = [string12 compare:string13];

        switch (result) {
            case NSOrderedAscending:
                NSLog(@"string12 < string13");
                break;
            case NSOrderedSame:
                NSLog(@"string12 = string13");
                break;
            case NSOrderedDescending:
                NSLog(@"string12 > string13");
                break;

            default:
                break;
        }  
    //根据字符串拿到对应的range
        NSRange strRange = [string11 rangeOfString:@"你看"];
        NSLog(@"strRange = %@",[NSValue valueWithRange:strRange]);

        NSRange strRange1 = [string11 rangeOfString:@"你"];
        NSLog(@"strRange1 = %@",[NSValue valueWithRange:strRange1]);
        //找到第一个就不找了 
    //判断字符串中是否有XX前缀或XX后缀
        NSString *string14 = @"www.baidu.com";
        if ([string14 hasPrefix:@"http://"]) {
            NSLog(@"含有此前缀");
        }else{
            NSLog(@"无此前缀");
        }

        NSString *string15 = @"asdf.jpg";
        if ([string15 hasSuffix:@".jpg"] || [string15 hasSuffix:@".png"]) {
            NSLog(@"含有此后缀");
        }
    //字符串拼接
        NSString *connStr = [@"http://" stringByAppendingString:string14];
        NSLog(@"connStr = %@",connStr);

        NSString *domainStr = @"http://wechat.palm-h.com";
        NSString *xxx = @"login";
        //http://wechat.palm-h.com/login
        NSString *string16 = [NSString stringWithFormat:@"%@/%@",domainStr,xxx];
        NSLog(@"string16 = %@",string16);

        NSString *string17 = [domainStr stringByAppendingPathComponent:xxx];
        NSLog(@"string17 = %@",string17);

        //http://web.52pk.com/uploads/141017/30_105806_1_lit.jpg
        NSString *imgPath = @"http://web.52pk.com/uploads/141017/30_105806_1_lit.jpg";
        imgPath = [imgPath lastPathComponent];//获取路径的最后一段
        NSLog(@"imgPath = %@",imgPath);

        path = [path lastPathComponent];
        NSLog(@"path = %@",path);

        NSString *theImageName = @"yanshuxin";
        theImageName = [theImageName stringByAppendingPathExtension:@"png"];
        NSLog(@"theImageName = %@",theImageName);   
    //uppercaseString:把所有字母转换为大写
    //lowercaseString:把所有字母转换为小写
    //capitalizedString:每个单词的首字母转换为大写
        NSString *str1 = @"I lovE kongfu";
        NSLog(@"%@ \n %@ \n %@",[str1 uppercaseString],[str1 lowercaseString],[str1 capitalizedString]);
    //不可变字符串:单个内容替换
        stringByReplacingOccurrencesOfString
        NSString *aa = [theImageName stringByReplacingOccurrencesOfString:@"y" withString:@"Y"];
        NSLog(@"%@",aa);
    //不可变字符串:指定长度内容替换
        stringByReplacingCharactersInRange
        NSString *aaa = [theImageName stringByReplacingCharactersInRange:NSMakeRange(1, 3) withString:@"ANS"];
        NSLog(@"%@",aaa);
    //不可变字符串:将原字符串的内容进行分割,分割得到的结果放到一个数组里,作为返回值.
        NSString *bb = @"yan,shu,xin";
        NSArray *ary = [bb componentsSeparatedByString:@","];
        for (int tmp = 0; tmp < 3; tmp++) {
            NSLog(@"%@",ary[tmp]);
        }
从零到一:ESP32-P4 PPA加速的配置陷阱与避坑指南 本文详细解析ESP32-P4结合LVGL的PPA硬件加速配置中的常见陷阱,包括内存对齐、缓冲区设置和同步机制等关键问题。提供实用的避坑指南和优化方案,帮助开发者高效启用esp32p4的PPA加速功能,显著提升图形渲染性能。 阅读详情

相关推荐

海波龙(Oracle Hyperion)单点登陆问题记录

Oracle海波龙套件已经多年未更新,按Oracle官方文档实施单点登陆启用之后,SmartView工具通过专用链接方式无法登陆系统。 在抓包逆向分析之后 定位到HspSmartViewServlet类在执行以下代码时获得的ssotoken无效导致,在某大厂工作的时候曾通过在filter中截获请求的方式植入Attribute,保留账号密码并在单点程序中处理实现登陆。 但在完美世界的环境中...

cainiaoEzu的专栏 1970

OC--NSMutableString可变字符串

NSMutableString:可变字符串,这里的可变指的是可以动态修改。 当我们去看NSMutableString的时候会看到下面的一行代码: @interface NSMutableString : NSString 可以看出,NSMutableString是继承自NSString的,所以,NSString的属性和方法,在这里都是适用的。但是,既然把它单独拿出来,那么,就肯定

m0_37681833的博客 802

UniApp消息推送进阶:不用插件实现动态语音播报(含保活策略)

本文详细介绍了在UniApp中实现动态语音播报的进阶方案,无需依赖第三方插件。核心采用透传消息传递动态数据,结合本地TTS引擎合成语音,并针对不同安卓厂商提供了深度通道配置与差异化保活策略,有效解决了App退至后台或被清理后语音播报失效的难题。

weixin_29224309的博客 486

UI控件-UILabel ,UIButton,UITextField的详解

一,UILabel文本标签 UILabel主要用来显示简短的文本 UILabel常用属性: 1.shadowColor属性:设置阴影颜色 。 2.shadowOffset属性:设置阴影偏移量。 3.lineBreakMode属性:设置文字过长时的显示格式。 4.attributedText属性:设置标签属性文本。 5.highlightedTextColor属性:设...

weixin_30684743的博客 317

【UE5】映射方式:动作映射(Action Mappings) 与 轴映射(Axis Mappings)

链接:https://pan.baidu.com/s/1nQHvZXC4BDsfbFWDYZqEfA?按下键盘A键,不要抬起,屏幕左上角打印了一次。(和Unity中的轴映射机制类似)下面我们通过测试更直观的了解一下这。抬起键盘A键,屏幕左上角打印了一次。项目资源文末百度网盘自取。再添加一个按键,选择键盘。键,缩放值设置为 2.0。,框选所有测试节点,按下。的情况下,屏幕一直打印。

weixin_64072619的博客 3498

AI开发提效10倍:从需求到部署的全流程实战指南(附Prompt模板)

用AI开发不是“偷懒”,而是把时间花在更有价值的地方——原来花80%时间写重复代码,现在用AI搞定后,能把精力放在“优化用户体验”“提升系统性能”这些核心工作上,这才是AI给开发者的真正红利。如果你还没开始用AI做开发,建议从“写一个简单接口”“补一段注释”开始尝试,先用起来再优化方法。记住:AI是工具,不是对手,学会驾驭它,你会发现开发效率提升的同时,还能告别无效加班。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1528

OC字符串常用函数

创建一个字符串对象:

wangzijie12的专栏 562

Multisim 14.0元件库下载权威指南:官方与社区资源

详解Multisim元件库下载的官方途径与可靠社区资源,帮助用户快速获取Multisim 14.0所需元件模型,提升电路仿真效率。

weixin_32925455的博客 747

OC不可变字符串和可变字符串(1)

在OC中,字符串有:不可变字符串(NSString)、可变字符串(NSMutableString)。 可变字符串的方法继承于不可变字符串。可变字符串1.初始化一个字符串对象(除以下方法外,还可以使用alloc init来初始化字符串)NSString *string1 = @"Gene"; //stringWithFormat可用于字符串的顺序拼接 NSString *string2 = [NSS

YZ_Gene的博客 1065

PyTorch实战(12)——图神经网络(Graph Neural Network,GNN)

在本节中,我们首先简要概述了图神经网络 (Graph Neural Network, GNN) 的核心概念与应用,GNN 通过构建计算图分层聚合节点特征,解决了传统神经网络处理图数据时的四大局限:信息深度不足、节点顺序敏感、动态扩展困难和特征稀疏性问题。了解了不同类型的图学习任务(包括节点级、边级和图级三大类)。接着我们研究了几种流行的 GNN 模型,包括:GCN (通过权重共享实现图卷积)、GAT (引入注意力机制区分邻居重要性)和 GraphSAGE (采用随机采样应对大规模图)。

盼小辉丶的博客 3642

【微信小程序】微信小程序 manifest.json 配置 ES6 转 ES5 开关:3步让你的代码兼容性更强

ES6(ECMAScript 6)是 JavaScript 的最新标准,引入了许多新的语法和特性,如箭头函数、模板字符串、解构赋值等。然而,不是所有的环境都支持 ES6,特别是旧版本的浏览器和一些特定的运行环境。为了确保代码的兼容性,我们需要将 ES6 代码转换为 ES5 代码。通过本文的详细讲解,相信你已经学会了如何在文件中配置微信小程序的 ES6 转 ES5 开关。这个小小的配置步骤能够显著提高代码的兼容性和稳定性。如果你有任何问题或需要进一步的帮助,欢迎随时留言交流。

java专栏 1359

OC:可变字符串(Foundation)

// //  main.m //  可变字符串 // //  Created by jerehedu on 14/12/13. //  Copyright (c) 2014年 jereh. All rights reserved. //   #import    int main(int argc, const char * argv[]) {       @autore

678

cefshap(C#)定义浏览器的右键菜单

菜单效果:复制(自带),搜索文本,打开链接,复制链接,刷新,检查,关于 public class MenuHandler : IContextMenuHandler { //public event Action<string> PopupRequest; void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrows

无线智能模块 可视DIY智能专家 1705

Snail—OC学习之可变字符串NSMutableString

NSMutableString 继承于NSString 所以NSSting的所有方法NSMutableString都继承 并且也可以用 下面有两个方法NSString没有的 //长度为0 同样表示空的字符串 NSMutableString * str3 = [[NSMutableString alloc] initWithCapacity:0];//类方法的创建形式 空的

树上的大腰子 881

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OC学习(四)不可变字符串类和可变字符串类

今天系统性的学习了OC中的NSString(字符串)类以及它的子类()

Kevin_Rao的专栏 1019

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OC-字符串

需求方法获取指定位置的字符获取指定范围的子字符串从索引到末尾的子字符串从开头到索引的子字符串获取指定位置的字节获取指定范围的字节获取字节。

2501_91546205的博客 740

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IOS 学习笔记 2015-03-24 OC-API-不可变字符串

大部分是模仿// // main.m // OC-API-不可变字符串 // // Created by wangtouwang on 15/3/25. // Copyright (c) 2015年 wangtouwang. All rights reserved. // #import <Foundation/Foundation.h> //初始化...

weixin_34289744的博客 68

PCA9422+STM32F412RE:从芯片到系统的嵌入式电源管理落地实践

在嵌入式系统中,电源管理直接决定了设备的稳定性与续航表现。从电源树梳理到多路电压输出,PMIC(电源管理芯片)负责将电池输入高效转换为各模块所需电压,而MCU则通过I2C实现动态调压与低功耗状态切换。理解电源管理的基本原理,是优化系统功耗、保障可靠运行的关键。对于智能手环、便携医疗设备等功耗敏感型产品,如何利用PMIC与低功耗MCU协同实现从运行到深度睡眠的完整电源闭环,已成为工程师关注的热点。本文基于PCA9422与STM32F412RE的实战组合,详细介绍从硬件选型、驱动移植到状态机设计与调试排查的完整

weixin_33831196的博客 301

OC中字符串的实现方式

简单总结一下,这个类型的字符串保存在常量区,不可修改,一般NSString直接创建;NSCFString这个类型的字符串在运行时动态生成,保存在堆去,可以修改,一般使用NSString stringWithFormat:动态创建;这种类型是把字符串内容直接保存在指针中,而不是真正的对象,一般适用于较短字符串。

2401_87841908的博客 915

OC学习:可变字符串替代:replaceOccurrencesOfString:(NSString *) withString:(NSString *) options: range:方法

//在可变的字符串NSMutableString中也有像不可变字符stringByReplacingOccurrencesOfString:(NSString *) withString:(NSString *)一样的替代所有的相同的元素的可变字符串方法。         //方法如下,将所有的“-”替换为“”(即是删除“-”)                  NSMutableStrin

TaLinBoy的博客 2387

OC-如何实现自定义类的可变与不可变

property会自动生成存取方法(getter/setter),但 readonly修饰的属性只会生成 getter 方法,不会生成 setter 方法。这是实现不可变类的关键机制之一适用readonly编译器只会生成getter方法而不会生成setter方法,所以子类在覆盖父类属性的时候需要新增setter方法readwrite覆盖readonly时,子类会继承父类的示例变量,同时子类会新增setter方法,getter方法可以继承父类或重写。

2501_91546205的博客 1304

OC可变字符串NSMutableString详解

1、已知NSMutableString继承自NSString,是可变字符串。而NSString是不可变字符串。 2、NSMutableString类型字符串的创建: 因为它完全继承自NSString,所以NSString的所有方法,它都可以使用。例如:stringWithFormat方法,还有stringWithContentsOfFile,stringWithContentsOfURL等等。

1090

OC学习笔记——字符串

字符串就是连续的字符序列,OC中有两种字符串: NSString:NSString类是不可变类,一旦被创建,其中的字符序列是不可改变的,直到对象被销毁 NSMutableString:NSMutableString是NSString的子类,因此可以调用NSString的所有方法,NSMutableString的对象也可以直接当成NSString对象使用。NSMutableString类的对象是字符序列可变的字符串,NSMutableString类为其对象所代表字符串的修改提供了若干方法。 下面介绍有关字

LANGJ1的博客 895

OC_可变和不可变字符串

不可变字符串:NSString1.初始化一个字符串对象 NSString *string1 = @"Leee"; NSString *string2 = [NSString stringWithFormat:@"sb"]; //NSString *string3 = [NSString stringWithFormat:@"%@%@",@"sss",@"qqq"]; //NSString *str

yourjjboom的博客 597

【OC】字符串

OC中有两个字符串,一个是NSString,这是不可变的字符串,另一个是NSMutableString,这是代表字符序列可变的字符串。

weixin_72437555的博客 656

OC基础—结构体、字符串

OC基础—结构体、字符串

ly307637627的专栏 1818
上一篇: OC学习
下一篇: OC学习----可变数组与不可变数组
25岁的大叔
博客等级 码龄13年 14粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值