iOS 将字符串分割成单个字符| 字符串转成数组

iOS开发中我们常常需要对字符串进行出去,例如分割,通常都是有个参照物进行分割

例如: https://www.xxx.xxx?name=zhangshan

iOS需要取出zhangsan的值,就需要用参照物"name="进行分割,右边为张三,左边为其他字符串

OC自带的分割api是 componentsSeparatedByString:@"" , 以下为代码:

objectivec 复制代码
 NSString * str = @"https://www.xxx.xxx?name=zhangshan";
 NSArray * array = [str componentsSeparatedByString:@"name="];
 NSString * nameStr = array[1];

但是如果一个字符串要分割成N个字符,且没有分割参照物,这个怎么办呢?

例如:将字符串 abcdefg 分割成单个字符. OC中没有自带的api (PS:swift 中有把字符串转成数组的自带方法)

我们可以借助NSRange 的方法进行单个切割:代码如下

objectivec 复制代码
#pragma mark 将字符串分割成单个字符
- (NSMutableArray *)separateString:(NSString *)str
{
    NSMutableArray * resultArray = [[NSMutableArray alloc]init];
    
    for (int i = 0; i < str.length ; i ++)
    {
        NSRange range = NSMakeRange(i, 1);
        NSString * singleStr = [str substringWithRange:range];
        //将分割好的单个字符装进数组
        [resultArray addObject:singleStr];
    }
    
    return  resultArray;
}

然后传入字符串就可以分割出来了

objectivec 复制代码
    NSString * valueStr = @"abcdefg";
    NSMutableArray * valueArray = [self separateString:valueStr];
    NSLog(@"valueArray==%@",valueArray);
    /*
     valueArray的输出为
     valueArray==(
         a,
         b,
         c,
         d,
         e,
         f,
         g
     )
     */

得到单个字符的数组,就有条件进行你想要的操作了!!!

PS分割字符串,本质就是把String转成Array;

这里额外讲一个Array转成String 的方法:

NSString * arrayToStr = valueArray componentsJoinedByString:@"";

objectivec 复制代码
//数组转为字符串
NSString * arrayToStr = [valueArray componentsJoinedByString:@""];
相关推荐
传奇开心果编程11 小时前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
瓦瓦gogo16 小时前
第一次了解 iOS 开发:从 Swift、SwiftUI 到公共组件
ios·swiftui·swift
Liben19 小时前
Weex开发踩坑记录
android·前端·ios
season_zhu21 小时前
Skills For Real Engineers 系列之三:需求聊清楚了,怎么一步步走主流程,做到交付?
ios·ai编程
茶底世界之下1 天前
窗边花瓶太暗?用 Awaking 看提亮室内的代价
ios
2501_915909061 天前
Windows 上用 VS Code 调试 iPhone 真机 App,KXBuild 断点、崩溃定位实操
ide·windows·vscode·ios·iphone·个人开发·敏捷流程
2501_916007472 天前
抓包工具功能对比,TraceEagle、Charles、Fiddler、Wireshark、mitmproxy 差别
前端·网络协议·ios·adb·https·fiddler·wireshark
2501_915106322 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
柚鸥ASO优化2 天前
iOS 27.2 更新后,App Store 广告展示逻辑出现新变化
ios
美狐美颜SDK开放平台2 天前
视频美颜SDK如何应对快速转头与大幅度面部动作?
android·人工智能·ios·音视频·直播美颜sdk·视频美颜sdk