为了账号安全,请及时绑定邮箱和手机立即绑定

Objective-C分割NSString

Objective-C分割NSString

沧海一幻觉 2019-04-07 09:37:39
有什么办法分割一个NSString按照每两个字符插入一个空格的格式?比如我有一个字符串:"12345678",分割出来后变为:"12345678"?或者可以用数组实现?把"12345678"存入4个数组,每个数组都是一个两位整数?谢谢!
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

1.使用正则表达式的方法(Obj-c里可能没有@Thinking所说的方法能直接使用,可能脚本语言会有)
方法就是用正则表达式\d{1,2},意思是匹配1到2个数字并且是贪婪型匹配,如果能匹配2个数字字符时会尽量多的匹配。然后逐个拿到相应的substring就好了。NSString*yourString=@"123456789";
NSError*error=NULL;
NSRegularExpression*regex=[NSRegularExpression
regularExpressionWithPattern:@"\\d{1,2}"
options:NSRegularExpressionCaseInsensitive
error:&error];
[regexenumerateMatchesInString:yourStringoptions:0range:NSMakeRange(0,[yourStringlength])usingBlock:^(NSTextCheckingResult*match,NSMatchingFlagsflags,BOOL*stop){
NSString*num=[yourStringsubstringWithRange:match.range];
NSLog(num);
}];2.如果源字符串如lz所描述就是一个简单的长数字字符串,那也可以直接逐个取substring就好,没有特别的地方。NSString*str=@"123456789";
NSMutableArray*arr=[NSMutableArrayarray];
while([strlength]>0){
if([strlength]==1){
[arraddObject:[NSNumbernumberWithInt:[strintValue]]];
break;
}
intindex=2;
NSString*subStr=[strsubstringToIndex:index];
str=[strsubstringFromIndex:index];
[arraddObject:[NSNumbernumberWithInt:[subStrintValue]]];
}
for(NSNumber*numinarr){
NSLog([numstringValue]);
}
                            
查看完整回答
反对 回复 2019-04-07
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

可以考虑使用正则切割的方式:"12345678".replace(/(\d{2})/g,'$1').replace(/^\s*|\s*$/g,'');
//"12345678"
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 353 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信