Obj-C数组以及字符串拼接与分割

Objective-C语言的字符串处理 在软件开发中,字符串是一种常见且重要的数据类型。无论是用户输入、网络请求还是数据存储,字符串在信息的传递和存储中发挥着重要作用。Objective-C作为一种面向对象的编程语言,其强大的字符串处理能力使得开发者可以更加高效地进行字符串处理。本文将详细探讨Objective-C中的字符串处理,包括NSString和NSMutableString类的使用、字符串格式化、正则表达式处理、字符串分割与连接等方面。 阅读详情

1.OC的数组成员是任意的对象指针    与C中的链表结构类似(以nil结尾)    一切的数组操作不能越界

OC的数组分为不可变数组 NSArray    可变数组 NSMutableArray

  1. NSArray * array = [[NSArray alloc]initWithObjects:@ "one" ,@ "two" ,@ "three" , nil]; 
  2.     NSLog(@ "%@" ,[array objectAtIndex:0]); //通过下标获取数组成员(下标从0开始)  
  3.     NSLog(@ "%ld" ,[array count]); //获取数组有效成员个数 (不包括nil)  
  4.      for  (i = 0; i < [array count]; i++) { //遍历数组(C方法)  
  5.          NSLog(@ "%@" ,[array objectAtIndex:i]); 
  6.     } 
  7.     NSLog(@ "%@" ,array);  
  8.     NSArray * array1 = [[NSArray alloc]initWithArray:array]; //创建数组对象 相当于拷贝  
  9.     NSArray * arry2 = [NSArray arrayWithArray:array]; //创建数组对象 相当于拷贝  
  10.     NSEnumerator * enumer = [array objectEnumerator]; //正序枚举器  
  11.       
  12.       
  13.     id obj; 
  14.       
  15.      while  (obj = [enumer nextObject]) {              //遍历数组  
  16.          NSLog(@ "%@" ,obj); 
  17.     } 
  18.       
  19.      for (id ob in array){ 
  20.         NSLog(@ "%@" ,ob);      
  21.     } 
  22.      //逆序输出数组(创建逆序枚举器  第一次循环把最后一个元素赋给obj )  
  23.     NSEnumerator * enumer1 = [array reverseObjectEnumerator]; 
  24.      while  (obj = [enumer1 nextObject]) { 
  25.          NSLog(@ "%@" ,obj); 
  26.     } 
  27.      if  ([obj isKindOfClass:[Dog  class ]])  //获取类的类型 判是否是指定类的对象  
  28.          if  ([obj isMemberOfClass:[Dog  class ]]) { 
  29.         } 

2.不可变数组

  1. -------查找 
  2.       
  3.     NSArray * array = [[NSArray alloc]initWithObjects:@ "one" ,@ "two" ,@ "three" ,@ "one" , nil];    
  4.     NSUInteger index = [array indexOfObject:@ "one123" ]; //返回第一个找到的数组成员对应的下标 找不到返回NSNotFound     
  5.     index = [array indexOfObject:@ "one"  inRange:NSMakeRange(1, 3)]; //在指定范围内查找  
  6.          if  (index != NSNotFound) { 
  7.              NSLog(@ "%ld" ,index); 
  8.         } 
  9.     ----抽取 组成新的数组 
  10.     NSArray * array1 = [array objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]]; 
  11.     《数字集合》 
  12.     NSIndexSet这是个数字集合类 
  13.     [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]产生一个数字集合 

3.可变数

  1. NSMutableArray * array = [[NSMutableArray alloc]initWithObjects:@ "one" ,@ "two" ,@ "three" ,@ "four" , nil]; 
  2.     [array addObject:@ "five" ]; //在数组尾部插入元素  
  3.     [array insertObject:@ "six"  atIndex:5]; //在数组指定下标位置插入元素(不能越界,最大值为length)     
  4.     [array removeObject:@ "six" ]; //删除指定元素(数组中出现的所有位置都将被删除)  
  5.     [array removeObject:@ "two"  inRange:NSMakeRange(0, 3)]; //从指定下标位置开始的指定长度内删除指定元素  
  6.     [array removeLastObject]; //删除最后一个元素  
  7.     [array removeAllObjects]; //删除所有元素          
  8.     [array replaceObjectAtIndex:3 withObject:@ "ios" ]; //将指定下标位置元素替换为指定的元素  
  9.     [array exchangeObjectAtIndex:0 withObjectAtIndex:3]; //将指定下标的两个元素进行交换  

4.字符串分割与拼接

  1. //@""   空的字符串对象  
  2.     -------分割 
  3.     NSString * ptr = @ "I am a man" ; 
  4.     NSArray * array = [ptr componentsSeparatedByString:@ " " ]; //将字符串整体作为分割条件 返回值为NSArray不可变数组  
  5.     NSMutableArray * array1 = [NSMutableArray arrayWithArray:array]; //若修改,则将NSArray转化为NSMutableArray  
  6.     NSArray * array2 = [ptr componentsSeparatedByCharactersInSet:[NSCharacterSet                                            characterSetWithCharactersInString:@ ", " ]]; //以字符串中的字符作为分割条件进行分割  
  7.     《字符集合》 
  8.     NSCharacterSet 这是个字符集合类 
  9.     [NSCharacterSet characterSetWithCharactersInString:@ ", " ] //把字符串转化为字符集合  
  10.     -------拼接 
  11.     NSString * str = [array componentsJoinedByString:@ " " ];   
  12.     若分割条件出现在开头或者结尾,则会出现空串@ "" ,如果不需要,则需要转化成NSMutableString对空串进行处理 
  13.     func1:  [array1 removeObject:@ "" ];      //找到空串直接删除  
  14.     func2:   for (id obj in array1){ 
  15.                  if ([obj length] == 0)            //空串的长度为0  
  16.                  if ([obj isEqualToString:@ "" ])    //与空串进行比较(字符串是不能进行==比较的,要使用函数)         
  17.             } 
Objective-C中字符串的拼接方法小结 在 java 和 c# 中,字符串的拼接是直接用 + 来操作的。在 OC 中,说是有下面3种方法, NSString* string; // 结果字符串 NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来   方法1: 代码如下: string = [NSString initWithFormat:@”%@,%@”, string1, string2 ];   方法2: 代码如下: string = [string1 stringByAppendingString:string2];   方法3: 代码如下: str 立即下载

相关推荐

从零到一:RV1126与IMX415的硬件交响曲——深入解析Linux IPC摄像头的硬件调试艺术

本文深入解析了RV1126与IMX415组合的Linux IPC摄像头硬件调试技术,涵盖硬件接口检查、设备树配置、驱动加载验证及ISP调优等关键步骤。通过详细的操作指南和常见问题解决方案,帮助开发者快速掌握摄像头调试技巧,提升开发效率。

weixin_29161785的博客 978

NSString超全总结

关于OC字符串的超级完整版总结

xiaoqu1998的专栏 396

《双剑合璧:双 IMU 驱动的高精度 AHRS 实战宝典(基于 ROS2)》

本文系统阐述了基于双IMU的高精度姿态与航向参考系统(AHRS)设计与实现方法。文章首先分析了传统单IMU系统的局限性,提出通过双IMU冗余配置实现性能互补的方案。从硬件设计要点(包括IMU选型策略、电路降噪方法、PCB布局规范),到算法实现方案(互补滤波、卡尔曼滤波等融合算法),再到ROS2软件架构与调优策略,全方位展示了双IMU系统的技术实现路径。特别强调快速性与高精度平衡的方法,包括动态参数调整、双IMU权重优化等核心技巧。最后总结了硬件降噪、算法调优等实用心法。

bother3000的博客 2024

Object-C 字符串截取、匹配、分割

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33701617的博客 920

SICK LMS111激光雷达数据解析实战:从原始帧到三维点云的完整流程

本文详细解析了SICK LMS111激光雷达从原始数据帧到三维点云的完整处理流程,包括数据帧结构解析、坐标转换、点云可视化及性能优化技巧。通过实战代码示例,展示了如何高效处理激光雷达数据,并应用于动态物体检测、地面分割等工业场景,为AGV和服务机器人开发者提供实用指南。

garlic的博客 769

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践

(应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。

百态·数智思维 | 聚焦大数据、量化与未来AI 1244

objective-c怎么将一个字符串分割成多个字符串

可以用NSString类的 - (NSArray *)componentsSeparatedByString:(NSString *)separator函数实现。 例子: 假如有一个字符串 NSString *list = @"Karin, Carrie, David"; 可以用上面的函数得到一个字符串数组: NSArray *listItems = [list componentsSepara

pilqc2009的专栏 5617

电路板功能测试系统-FCT for PCBA

电路板功能测试系统用于电路板组件(PCBA)的功能测试(FCT),满足自动化大批量生产的要求。  ● 用户根据自己需要定义测试步骤,灵活方便  ● 适合工业自动化大批量生产应用  ● 系统测试精度高,稳定可靠   一、电路板功能测试系统概述 电路板测试过程通常由多个步骤组成,每单个步骤中需要对多个物理量(电压、电流、电阻、频率、波形等)进行测试。在每个步骤测试时

6812

NSString用法、Obj-C数组以及字符串拼接与分割

一、介绍 使用NSString创建一个字符串的代码如下: #import int main (int argc, char *argv[]) {     NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init];     NSString *str=@"Programming is fun";     NSLog(

553

汽车OBD接口实战:如何用STM32读取CAN总线数据(附完整代码)

本文详细介绍了如何利用STM32微控制器通过汽车OBD接口读取CAN总线数据的完整实战方案。内容涵盖硬件连接(如OBD引脚定义与TJA1050收发器接线)、STM32的CAN外设初始化与滤波器配置,并深入解析OBD-II诊断协议,演示了如何请求和解析发动机转速、车速等关键数据。文末提供了构建稳定数据读取系统的代码框架与错误处理建议,为嵌入式开发者和汽车电子爱好者提供了从零到一的实践指南。

9q8w7e6r5的博客 297

软件崩溃时Visual Studio中看不到有效的调用堆栈,使用Windbg动态调试去分析定位

当在Visual Studio中遇到软件崩溃且无法查看详细调用堆栈时,可以使用Windbg进行动态调试去分析定位问题。

dvlinker的技术专栏 1万+

OC 数组以及字符串拼接与分割

OC的数组成员是任意的对象指针 ,与C中的链表结构类似(以nil结尾) ,一切的数组操作不能越界。

心虽远,情未变,乐依然。 1198

5G/NR 网络切片基本概念(协议版)

26.1 网络切片概念 网络切片是一个概念,可以根据每个客户的要求进行区别对待。通过切片的形式,将不同流量差异化处理,以及可以将资源进行隔离,然后移动网络运营商可以将客户视为属于不同租户类型的客户,每种客户具有不同的服务要求,这些要求根据每个租户根据SLA (Service Level Agreement,服务水平协议)可以使用哪种切片类型进行管理和订阅。 网络切片始终由RAN部分和CN部...

欢迎来到小七的博客,这里将带你深入探索5G通信的神秘世界。无论你是通信领域的专业人士还是对这一领域充满好奇心的技术爱好者,这里都有专业协议解读、通信知识普及以及有趣的Python编程内容等你发现。 1万+

oc - 数组及字符串拼接与分割

1.OC的数组成员是任意的对象指针    与C中的链表结构类似(以nil结尾)    一切的数组操作不能越界 OC的数组分为不可变数组 NSArray    可变数组 NSMutableArray  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14

wln930218的专栏 1030

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数组以及字符串拼接与分割

1.OC的数组成员是任意的对象指针    与C中的链表结构类似(以nil结尾)    一切的数组操作不能越界 OC的数组分为不可变数组 NSArray    可变数组 NSMutableArray NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three", nil];     NSLog(@"%@",[

chaoyuan899的专栏 2509

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

iOS开发-- 字符串分割、拼接

---------------------字符串分割实例---------------------NSString * ptr = @"I am a man";//将字符串整体作为分割条件 返回值为NSArray不可变数组NSArray * array = [ptr componentsSeparatedByString:@" "];//若修改,则将NSArray转化为NSMutab...

249

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Object-C 数组以及字符串拼接与分割

1.OC的数组成员是任意的对象指针    与C中的链表结构类似(以nil结尾)    一切的数组操作不能越界 OC的数组分为不可变数组 NSArray    可变数组 NSMutableArray 01 NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three

sxbkelly的专栏 2294

Objective-C中的数组和字符串

一.    OC的数组成员是任意的对象指针    与C中的链表结构类似(以nil结尾)    一切的数组操作不能越界         OC的数组分为 -->不可变数组 NSArray -->    可变数组 NSMutableArray       [cpp] view plain copy "code" class="

lichuanlong007的博客 1160

OC 数组,字符串的拼接

1.OC的数组成员是任意的对象指针    与C中的链表结构类似(以nil结尾)    一切的数组操作不能越界 OC的数组分为不可变数组 NSArray    可变数组 NSMutableArray  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14

qq_25549019的专栏 1325
上一篇: 提高Xcode 的编译速度
下一篇: 注意:NSString - compare: 的用法.
「已注销」
博客等级 码龄12年 28粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值