摘要 string类型是objective-c中用的最多的类型之一,有时会出现字符串中有我们不想要的字符。 如 "hello world"中的空格,或是"hello/world"中的'/',亦或是"你好A你好"中的'A'。这些都可以通过NSString中的方法来解决。
一、带节点的字符串,如@"<p>讨厌的节点<br/></p>"我们只想要中间的中文
处理方法一:
NSString *string1 = @"<p>讨厌的节点<br/></p>";
/*此处将不想要的字符全部放进characterSet1中,不需另外加逗号或空格之类的,除非字符串中有你想要去除的空格,此处< p /等都是单独存在,不作为整个字符*/
NSCharacterSet *characterSet1 = [NSCharacterSet characterSetWithCharactersInString:@"<p/brh>"];
// 将string1按characterSet1中的元素分割成数组
NSArray *array1 = [string1 componentsSeparatedByCharactersInSet:characterSet1];
NSLog(@"array = %@",array1);
for(NSString *string1 in array1)
{
if ([string1 length]>0) {
// 此处string即为中文字符串
NSLog(@"string = %@",string1);
}
}
打印结果: 2013-05-31 10:55:34.017 string[17634:303]
array = (
"",
"",
"",
"U8ba8U538cU7684U8282U70b9",
"",
"",
"",
"",
"",
"",
"",
"",
""
)
2013-05-31 10:55:34.049 string[17634:303]
string = 讨厌的节点
二、带空格的字符串,如
@"hello world"去掉空格
NSString *string2 = @"hello world";
/*处理空格*/
NSCharacterSet *characterSet2 = [NSCharacterSet whitespaceCharacterSet];
// 将string1按characterSet1中的元素分割成数组
NSArray *array2 = [string2 componentsSeparatedByCharactersInSet:characterSet2];
NSLog(@"
array = %@",array2);
// 用来存放处理后的字符串
NSMutableString *newString1 = [NSMutableString string];
for(NSString *string in array1)
{
[newString1 appendString:string];
}
NSLog(@"newString = %@", newString1);
打印结果:
2013-05-31 11:02:49.656 string[17889:303]
array = (
hello,
world
)
2013-05-31 11:02:49.657 string[17889:303] newString = helloworld
PS:处理字母等其他元素只需将NSCharacterSet的值改变即可。
+ (id)controlCharacterSet;
+ (id)whitespaceCharacterSet;
+ (id)whitespaceAndNewlineCharacterSet;
+ (id)decimalDigitCharacterSet;
+ (id)letterCharacterSet;
+ (id)lowercaseLetterCharacterSet;
+ (id)uppercaseLetterCharacterSet;
+ (id)nonBaseCharacterSet;
+ (id)alphanumericCharacterSet;
+ (id)decomposableCharacterSet;
+ (id)illegalCharacterSet;
+ (id)punctuationCharacterSet;
+ (id)capitalizedLetterCharacterSet;
+ (id)symbolCharacterSet;
+ (id)newlineCharacterSet NS_AVAILABLE(10_5, 2_0);
+ (id)characterSetWithRange:(NSRange)aRange;
+ (id)characterSetWithCharactersInString:(NSString *)aString;
+ (id)characterSetWithBitmapRepresentation:(NSData *)data;
+ (id)characterSetWithContentsOfFile:(NSString *)fName;