在iOS开发过程中,有些时候需要用到这种情况,把获取到的英文字符串转换成想要的大小写类型;还有些时候是需要把获取到的汉字字符串转换成汉语拼音的形式;还有些时候来判断字符串的类型。这些情况需要放在一起介绍,下面就来说说上述的三种情况的使用方法。
一、字符串大小的相互转换
字符串大小转换,举个例子,如下所示:
NSString *string1 =@”AaBbCcDdEeFfGgHhIiJjKk”;
1、把字符串全部转化为小写
方法一:
NSString *string2 = [string1 lowercaseString];
或者
方法二:
NSString *string3 = string1.lowercaseString;
2、把字符串全部转化为大写
方法一:
NSString *string4 = [string1 uppercaseString];
或者
方法二:
NSString *string5 = string1.uppercaseString;
3、开头大写,其余小写
NSString *string6 =[string1 capitalizedString];
二、汉字转拼音
汉字字符串转换成汉语拼音,举个例子,如下所示:
NSString *tempString1 = @“三掌柜”;
1、转换成可变的字符串
NSMutableString *tempString2 = [NSMutableString stringWithString:tempString1];
2、首先要把字符串转换为带声调的拼音
CFStringTransform((CFMutableStringRef)tempString2, NULL, kCFStringTransformToLatin, false);
3、再把带声调的拼音转换为不带声调的拼音
CFStringTransform((CFMutableStringRef)tempString2, NULL, kCFStringTransformStripDiacritics, false);
三、字符串类型的判断
判断字符串的类型,需要根据需要来具体的设置,举个例子,如下所示:
1、常见的字符串类型,这里用宏定义来解释一下,如下所示:
#define ENGLISH @”[a-zA-Z]” // 英文
#define CHINESE @”[\u4e00-\u9fa5]” // 汉字
#define INTSTR @”[0-9]” // 数字
#define SMALLLETTER @”[a-z]” // 小写字母
#define CAPITALLETTER @”[A-Z]” // 大写字母
2、根据宏定义来进行字符串的判断,步骤如下所示:
/*
* 字符串判断
* string 字符串,stringRegex 正则表达式
* @return 返回YES或NO
*/
– (BOOL)typeJudgeWithString:(NSString *) string withType:(NSString *) stringRegex {
NSPredicate *strPredicate = [NSPredicate predicateWithFormat:@”SELF MATCHES %@”, stringRegex];
return [strPredicate evaluateWithObject:string];
}
四、字典转JSON字符串,JSON字符串转字典
字典和JSON字符串互转的方式,如下所示:
1、JSON格式字符串转换成字典
/*
* @param jsonString JSON格式的字符串
* @return 返回字典
*/
(NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString {
if (jsonString == nil) {
return nil;
}
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error1;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error1];
if(error1) {
NSLog(@”解析失败====“,error1);
return nil;
}
return dic;
}
2、字典转换成JSON字符串
(NSString*)dictionaryToJson:(NSDictionary *)dic {
NSError *parseError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}