首页编程componentsseparatedbystring(componentsseparatedby和split的区别)

componentsseparatedbystring(componentsseparatedby和split的区别)

编程之家2023-11-0676次浏览

今天给各位分享componentsseparatedbystring的知识,其中也会对componentsseparatedby和split的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

componentsseparatedbystring(componentsseparatedby和split的区别)

如何在char数组和NSString之间进行转换

Char数组与NSString之间可以通过stringWithCString:encoding和 cStringUsingEncoding:来转换,但是最近在工作中发现将一个unsigned char数组(里面存储的是十六进制的数据)转化成NSString时,得到的结果有些数据却不正确,当然再将NSString转化成unsigned char数组时,结果也不正确了,找了下资料,只能把char里面的元素转换成字符串,再保存到NSString对象中,具体如下:

unsigned char sData[10];

NSMutableString*hexString= [NSMutableString string];

for(int i=0; i<sizeof(sData); i++)

{

[hexString appendFormat:@"%02x", sData[i]];

componentsseparatedbystring(componentsseparatedby和split的区别)

}

由于还要将NSString转成char数组,于是在转NSString的时候每个元素后面加了一个空格,要转char数组的是先将NSString转成NSArray,再转化为char数组(比较笨的一种方法):

unsigned char mCode;

NSArray*arr= [hexString componentsSeparatedByString:@""];

for(int i= 0; i< arr.count;++i){

sscanf([[arr objectAtIndex:i] UTF8String],"%x",&mCode);

componentsseparatedbystring(componentsseparatedby和split的区别)

sData[i]= mCode;

}

componentsseparatedby和split的区别

在NSString中有两个分割字符串的方法,分别为components(separatedBy:)方法和components(separatedBy:)方法。

(1)components(separatedBy:)方法是将字符串根据指定的字符串参数进行分割,并将分别的内容转换为一个数组。其语法形式如下:

func components(separatedBy separator: String)-> [String]

其中,separator用来指定分割字符串。

【示例1-67】以下将使用components(separatedBy:)方法将字符串进行分割。

import Foundation

var a=NSString(string:"A,B,C,D,E,F")

print("分割前:\(a)")

print("分割后:\(a.components(separatedBy:","))")//分割字符串

运行结果如下:

分割前:A,B,C,D,E,F

分割后:["A","B","C","D","E","F"]

(2)components(separatedBy:)方法是将字符串根据指定的字符编码参数进行分割,并将分别的内容转换为一个数组。其语法形式如下:

func components(separatedBy separator: CharacterSet)-> [String]

其中,separator用来指定分割的字符集。

【示例1-68】以下将使用components(separatedBy:)方法将字符串进行分割。

import Foundation

var a=NSString(string:"A*B*C*D*E*F")

print("分割前:\(a)")

var b:CharacterSet=NSCharacterSet(charactersIn:"*") as CharacterSet

print("分割后:\(a.components(separatedBy: b)))")

运行结果如下:

分割前:A*B*C*D*E*F

分割后:["A","B","C","D","E","F"])

--------------------------------------------------------

split()方法用于把一个字符串分割成字符串数组。

语法

stringObject.split(separator,howmany)

参数

描述

separator必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

howmany可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

一个字符串数组。该数组是通过在 separator指定的边界处将字符串 stringObject分割成子串创建的。返回的数组中的字串不包括 separator自身。

但是,如果 separator是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。

ios 怎样关闭textfield 的 长按手势

首先要重写UITextFiled子类在初始化方法下面 copy下面方法就禁止了长按出现的菜单

//干掉textField的长按菜单禁止copy paste

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender

{

if([UIMenuController sharedMenuController]){

[UIMenuController sharedMenuController].menuVisible= NO;

}

return NO;

}

在开发中我们有时候会对UITextFiled进行一些操作,说一下如何只输入中文,或者只输入数字和英文 2中方法

我直接用宏定义定义:

#define kAlphaNum@"abcdefghijklmnopqrstuvwxyz"//这种是对应只输入中文不允许其他数字或者符号的

#define kEnglishNum@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"//这种是对应只能输入数字和英文的方法

执行UITextField的delegate方法切记 textFiled.delegate= self;

下面直接上代码:

-(BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string

{

UITextField*nameField=(UITextField*)[self viewWithTag:200];

UITextField*cardField=(UITextField*)[self viewWithTag:201];

if(textField== nameField){

//只允许输入中文

NSCharacterSet*cs;

cs= [[NSCharacterSet characterSetWithCharactersInString:kAlphaNum] invertedSet];

NSString*filtered= [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

BOOL basic= [string isEqualToString:filtered];

NSString*text= [textField.text stringByReplacingCharactersInRange:range withString:string];

if(_delegate&& [_delegate respondsToSelector:@selector(passName:)]){

[_delegate passName:text];

}

return basic;

}

if(textField== cardField){

//只允许输入英文和数字

NSCharacterSet*cs;

cs= [[NSCharacterSet characterSetWithCharactersInString:kEnglishNum] invertedSet];

NSString*filtered= [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

BOOL basic= [string isEqualToString:filtered];

NSString*text= [textField.text stringByReplacingCharactersInRange:range withString:string];

if(_delegate&& [_delegate respondsToSelector:@selector(passCard:)]){

[_delegate passCard:text];

}

return basic;

}

return YES;

}

感谢您的阅读!希望本文对解决您关于componentsseparatedbystring和componentsseparatedby和split的区别的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。

互点?淘宝分享券怎么互点常量 什么是常量